foreach函数从mysql db创建数组

时间:2011-02-28 21:46:11

标签: php mysql arrays foreach

需要返回一个这样的数组,例如:

 array(30 => 'Mercedes Benz 310 ',26 => 'Lamborghini Murcielago')

我的数据库设置如下:

CREATE TABLE cars (
  id bigint(20) NOT NULL auto_increment,
  `car_name` tinyint(2) NOT NULL default '0',
  owner varchar(20) NOT NULL default ''
  PRIMARY KEY  (id)
) ENGINE=MyISAM; 

id必须是array key

所以我尝试使用foreach,但我还是不太明白它是如何工作的。

$q = "select `id`, `car_name` from `cars` where `owner`='$username'";
$result = $conn->query($q); 
unset($q); 

if( !$result){
    return array(0 => 'error'); 
}

$garage = $result->fetch_assoc(); 
$car_id = $garage["id"];
$car_name = $garage["car_name"]; 



foreach( $car_name as $key => $car_id ){

    ...

}

1 个答案:

答案 0 :(得分:6)

你离我不远。像这样的东西可以给你那种你正在寻找的阵列。

    $q = "select `id`, `car_name` from `cars` where `owner`='$username'";
    $result = $conn->query($q); 
    unset($q); 

    if( !$result){
        return array(0 => 'error'); 
    }

    while($row = mysql_fetch_array($result)){
      $garage[$row['id']] = $row['car_name'];
    }

return $garage;