我有一个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;
- Mark Baker$array[$row['id']] = $row;
- Stevemysql_*
和mysqli_*
并没有太大的区别,但是并不是每个人都有同样的经验,否则我们也不需要SO了。 - SidOfc