【发布时间】:2015-11-19 13:20:53
【问题描述】:
我有一个如下所示的 MySQL 数据库:
ID TEXT PARENTID
20 Item1 null
23 Item2 20
27 Item3 20
80 Item4 27
我想要的是在这样的数组中检索这些数据:
Array (
[20] => Array ( [text] => Item1 [parentID] => )
[23] => Array ( [text] => Item2 [parentID] => 20 )
[27] => Array ( [text] => Item3 [parentID] => 20 )
[80] => Array ( [text] => Item4 [parentID] => 27 )
);
注意键值代表表中id列的值。
我尝试在 mysql 循环中创建一个数组(我仍在学习 MySQLi,希望它很快就会坚持,但这个例子是在旧的 MySQL 中):
$hent_folder = mysql_query("SELECT id, text, parentID FROM folders");
while($row = mysql_fetch_assoc($hent_folder))
{
$array[] = $row;
}
这里的结果当然会生成“自动”键值,而不是根据需要生成来自 ID 列的值,而且它会将 ID 列作为内部数组的一部分。
有没有办法或解决方法在这里取得成功?
我希望有人能带领我朝着正确的方向前进……
----- 编辑 ------
我换了
$array[] = $row;
与
$array[$row['ID']] = $row;
但它仍然没有返回上述想要的结果。它返回:
Array (
[0] => Array ( [id] => 20 [text] => Item1 [parentID] => )
[1] => Array ( [id] => 23 [text] => Item2 [parentID] => 20 )
[2] => Array ( [id] => 27 [text] => Item4 [parentID] => 20 )
[3] => Array ( [id] => 80 [text] => Item4 [parentID] => 27 )
);
【问题讨论】:
-
$array[$row['ID']] = $row; -
$array[$row['id']] = $row; -
如果您是 php 新手,那么我的第一个建议是删除 mysql_* 函数并查看 pdo 和 mysqli
-
正如他在实际问题中所说的,OP 实际上已经在这样做了
-
@SidneyLiebrand - OP 没有根据原始问题执行此操作,此后添加了该问题.....尽管原始问题没有说明列名中的大小写,这是现在区分大小写的问题