【问题标题】:array declaration数组声明
【发布时间】:2011-02-15 06:39:12
【问题描述】:

我希望将数组声明为 $value=array('apple'=>'red', 'mango'=>'yellow'). 现在我希望从数据库中获取这些值。 苹果和红色。 假设这些颜色保存在名为“colors”的表中,而“fruits”表中的水果保存为 color_id。 现在如何获取它们并放入这个数组中。

我尝试将代码放在方括号中,如数组(要获取的代码),但它不起作用。 有人可以帮忙吗?

table->fruit(fruit_id, color_id,fruit_name) 表格-> 颜色(颜色 ID,颜色名称)

 $result=mysql_query("select * from
 fruit_table");
 while($row=mysql_fetch_array($result)){
     $row_color-mysql_fetch_array(mysql_query("select color_name from colors where
 color_id=$row['color_id']"));
 $val[]="$row['fruit_name']=>$row_color[color_name]";

 } 
$data=implode(",",$val);
 $value=array($data);

提前谢谢。

【问题讨论】:

  • mysql, wamp 服务器 phpmyadmin
  • 发布您尝试过的内容。另外,您使用的是哪个数据库?
  • 确切的表结构是什么?请张贴“颜色”和“水果”表的表创建语句。

标签: php mysql


【解决方案1】:

你必须做两件事。

  1. 执行查询以从数据库中获取所需信息。
  2. 将查询结果转换为您想要的格式。

这是一些示例代码(假设您已经成功连接到数据库)。

我对您的数据库架构所做的假设是:

  • 您在两个表中都使用id 作为主键
  • name 是包含颜色/水果名称的字段

如果它们是正确的,它应该可以工作,否则需要对查询进行微调

$result = mysql_query('
    SELECT fruits.name as fruit, colors.name as color 
    FROM fruits 
    JOIN colors 
    ON fruits.color_id = color.id');

if (!$result) {
    die(mysql_error());
}

$value = array();

while ($row = mysql_fetch_assoc($result)) {
    $value[$row['fruit']] = $row['color'];
}

mysql_free_result($result);

【讨论】:

  • 非常感谢!!它起作用了..我总是在这里找到我的答案.. :)
【解决方案2】:

这边?

$value = array();
while ($r = mysql_fetch_array($mySqlQuery)){
    $value[$r['fruit_field']] = $r['color_field'];
}

MySQL 查询不在此处;希望你已经拥有它。

【讨论】:

  • 非常感谢!!得到我的解决方案!
【解决方案3】:

这是使以下工作的代码。 这基本上就是 ASSOCIATIVE ARRAY 中键值对的概念

//Assuming the name of the fruits column is fruit_name and color column is color_name

$value = array();
$query = "SELECT * FROM colors as c LEFT JOIN fruits as f ON c.color_id=f.color_id";
$result = mysql_query($query);

if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
$fruitname = $row['fruit_name'];
$colorname = $row['color_name'];
$value['$fruitname'] = $color_name;
}
}

在循环结束时,值数组将具有所需的值。

谢谢 J

【讨论】:

  • 使用LEFT JOIN 将导致行有颜色但没有水果。
  • 非常感谢!!得到我的解决方案!
猜你喜欢
  • 2023-02-09
  • 2020-10-24
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2013-03-22
相关资源
最近更新 更多