我有一个看起来像这样的mysql表:
id | uid | title | description | parent
1 | 1 | Portraits | desc. | photostream
2 | 1 | Abstract | descr. | photostream
我正在尝试构建一个最终看起来像这样的多维数组:
Array
(
[0]
[id] => 1
[uid] => 1
[title] => Portraits
[description] => desc.
[parent] => photostream
[1]
[id] => 2
[uid] => 1
[title] => Abstract
[description] => descr.
[parent] => photostream
)
我正在使用选择查询:
$query = mysql_query(
"SELECT * FROM `table` WHERE `uid`='1' ORDER BY `id` DESC");
有谁知道怎么做? 谢谢, 列维
答案 0 :(得分:26)
$query = mysql_query("SELECT * FROM table WHERE uid = '1' ORDER BY id DESC");
$results = array();
while($line = mysql_fetch_array($query, MYSQL_ASSOC)){
$results[] = $line;
}
答案 1 :(得分:1)
这不包括用于收集数据的sql函数,但我为我的问题制作了一个表(是同样的问题)这也是我的表。所以更多的例子而不是解释。
这不是一个完整的解释,而是一个示例代码。
表:
[ID |家长| name | href |标题]
<强> CODE:强>
foreach ($query->result_array() as $row)
{
if ($row['parent'] === null)
$data[$row['id']][0]= '<a href="'.$row['href'].'"'.($row['title']!==null)?'title="'.$row['title'].'"':''.'>'.$row['name'].'</a>';
else
{
$temp = '<a href="'.$row['href'].'"'.($row['title']!==null)?'title="'.$row['title'].'"':''.'>'.$row['name'].'</a>';
array_push($data[$row['parent']],$temp);
}
}
我用它来为我的导航栏生成链接。然后我使用一个函数从中创建一个多级列表。对于我的问题。它非常相似,但这是我的解决方案。
如果你愿意的话。而不是制作自己的版本。我可以使用您的数据库方案为数据制作类似的代码..
警告:看起来这似乎只适用于两级布局。我会更多地即兴创作代码并发布我的代码片段的下一个版本。
答案 2 :(得分:1)
$query = mysql_query("SELECT * FROM table WHERE uid = '1' ORDER BY id DESC");
$results = array();
$num_fields=mysql_num_fields($query);
$num_rows=mysql_num_rows($query);
while($line = mysql_fetch_array($query)){
for($i=0;$i<$num_rows;$i++
{
for($j=0;$j<$num_fields;$j++
{
$results[$i][$j]=$line[$i][$j];
}
}
}