多维数组从SQL查询



我有一个多维数组,我试图从SQL查询构建。我在内部数组中添加id时遇到麻烦。

代码:

$checkboxes = "SELECT id, name FROM review_sites WHERE active=1 ORDER BY name ASC"; 
$result = mysql_query($checkboxes) or die(mysql_error());
$names = array();
while ($row = mysql_fetch_array($result)) {
    $names[]['name'] = $row['name'];
}

当前数组看起来像:

Array
(
[0] => Array
    (
        [name] => 411.ca
    )
[1] => Array
    (
        [name] => AutoMD
    )

我需要数组看起来像这样:

Array
(
[0] => Array
    (
        [id] => 4
        [name] => 411.ca
    )
[1] => Array
    (
        [id] => 9
        [name] => AutoMD
    )

您只在查询中选择idname,因此,在循环中:

while ($row = mysql_fetch_assoc($result)) {
    $names[] = $row;
}

或简单的:

while ($names[] = mysql_fetch_assoc($result)) {}

注意,mysql_fetch_assoc()只返回一个关联数组。mysql_fetch_array()返回一个关联的数字索引数组。

:

此扩展在PHP 5.5.0中已弃用,并将在PHP 5.5.0中删除未来。相反,应该使用MySQLi或PDO_MySQL扩展名。请参见MySQL:选择API指南和相关FAQ了解更多信息信息。此函数的替代方法包括:mysqli_fetch_array () PDOStatement: fetch ()

如果你要使用MySQLi扩展,那么你可以使用:

$names = mysqli_fetch_all($result, MYSQLI_ASSOC);
$checkboxes = "SELECT id, name FROM review_sites WHERE active=1 ORDER BY name ASC"; 
$result = mysql_query($checkboxes) or die(mysql_error());
$names = array();
while ($row = mysql_fetch_array($result)) {  
    $names['id'] = $row['name'];
}   
var_dump($names);

相关内容

  • 没有找到相关文章

最新更新