我有一个多维数组,我试图从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
)
答案 0 :(得分:2)
您只在查询中选择id
和name
,因此,在循环中:
while ($row = mysql_fetch_assoc($result)) {
$names[] = $row;
}
或者简单地说:
while ($names[] = mysql_fetch_assoc($result)) {}
注意,mysql_fetch_assoc()
只返回一个关联数组。 mysql_fetch_array()
返回一个关联和数字索引的数组。
此外:
自PHP 5.5.0起,此扩展程序已弃用,并将在中删除 未来。相反,应该使用MySQLi或PDO_MySQL扩展。 另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息 信息。该功能的替代方案包括: mysqli_fetch_array()PDOStatement :: fetch()
如果您使用MySQLi扩展程序,则可以使用:
$names = mysqli_fetch_all($result, MYSQLI_ASSOC);
答案 1 :(得分:-2)
$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);