假设我有一个MySQL表,用户,就像这样 -
-----------------------------------------
ID | FirstName | LastName
-----------------------------------------
1 | ABC | XYZ
2 | DEF | LMN
3 | GHI | PQR
-----------------------------------------
我可以使用像
这样的简单MySQL查询来获取结果SELECT ID,FirstName,LastName FROM Users
现在我要找的是将查询结果存储在关联数组表单中。结构将是这样的 -
Array
(
[ID] => Array
(
[0] => FirstName
[1] => LastName
)
)
所以上面的查询结果应该存储在这样的数组中 -
Array
(
[1] => Array
(
[0] => ABC
[1] => XYZ
)
[2] => Array
(
[0] => DEF
[1] => LMN
)
[3] => Array
(
[0] => GHI
[1] => PQR
)
)
我知道array_push。但我想知道是否需要使用它。怎么能得到这个结果?
答案 0 :(得分:1)
您必须输入数据库连接信息,可能会稍微更改SQL语句和while循环中的列名。
$db = @new mysqli('HOST', 'USER', 'PASS', 'DBNAME');
$res = $db->query("SELECT * FROM `Users`");
$yourdata = array();
if ($res && $db->errno == 0) {
while ($row == $res->fetch_object()) {
$yourdata[$row->ID] = array(0 => $row->firstname, 1 => $row->lastname);
}
}
答案 1 :(得分:1)
$result = mysql_query('SELECT ID, FirstName, LastName FROM Users');
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$id = array_shift($row); // Shifts first element
$data[$id] = $row;
}
您可以在较短版本$data[array_shift($row)] = $row;
答案 2 :(得分:0)
这比您想要的更加联想:)
$temp = array();
$arr = array();
$r = mysql_query("<your query>");
while ($row = mysql_fetch_assoc($r))
{
$temp['fname'] = $row['FirstName'];
$temp['lname'] = $row['LastName'];
$arr[$row['ID']] = $temp;
unset($temp);
}
应输出
Array (
[1] => Array (
[fname] => ABC
[lname] => XYZ
)
)
.
.
.
etc