数组声明

时间:2011-02-15 06:39:12

标签: php mysql

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

我试图将代码放在括号中,就像数组一样(要获取的代码),但它确实无法正常工作。 任何人都可以帮忙吗?

table-> fruit(fruit_id,color_id,fruit_name) 表 - > color(color_id,color_name)

 $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);
提前

3 个答案:

答案 0 :(得分:3)

您需要做两件事。

  1. 执行查询以从数据库中获取所需信息。
  2. 将查询结果转换为您想要的格式。
  3. 这是一些示例代码(假设您已成功连接到数据库)。

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

    • 您使用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);
    

答案 1 :(得分:1)

这样吗?

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

MySQL查询不在这里;希望你已经拥有它。

答案 2 :(得分:1)

以下是进行以下工作的代码。 这基本上是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;
}
}

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

由于 Ĵ