来自 mysql 结果的 Php 多维数组

2022-08-30 15:43:32

我有一个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");

有人知道如何做到这一点吗?谢谢,列维


答案 1
$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;
}

答案 2

这不包括用于收集数据的sql函数,但我为我的问题制作了一个表(是相同的确切问题)顺便说一句,这也是我的表。因此,它更多的是一个例子,而不是一种解释。

这不是一个完整的解释,而是一个示例代码。


表:
[ ID |家长|名称 |href |标题 ]


法典:

            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);
    }
}

我用它来为我的导航栏生成我的链接。然后,我使用一个函数从中制作一个多级列表。对于我的问题。它的问题非常相似,但这是我的解决方案。

如果你愿意。而不是制作自己的版本。我可以使用您的数据库方案来制作类似的代码来代替数据。

警告:目前看来,这可能只适用于两级布局。Ill再即兴创作一些代码,并发布我的代码片段的下一个版本。