【发布时间】:2021-05-03 19:50:34
【问题描述】:
我试图打印一个父子树的数组。我使用的代码似乎没有打印任何内容。
<?php
$sql = "
SELECT *,
category_name parent_category_name,
'' path
FROM categories
LEFT JOIN categories ON parent_id = id
ORDER BY parent_id, id
";
function print_row ( $rowdata )
{
?>
<tr>
<td>
<?=$rowdata['id']?>
</td>
<td>
<?=$rowdata['path']?>
</td>
<td>
<?=$rowdata['type']?>
</td>
<td>
<?=$rowdata['status']?>
</td>
</tr>
<?php
}
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);
$printed = array();
foreach ($data as $row)
{
if ( $row['parent_id'] == '' )
{
$row['path'] = $row['category_name'] . '/';
$printed[$row['id']] = $row;
}
else
{
$row['path'] = $printed[$row['parent_id']]['path'] . $row['category_name'] . '/';
$printed[$row['id']] = $row;
}
}
array_multisort(array_column($printed, 'path'), SORT_ASC, $printed);
foreach ( $printed as $prow )
{
print_row ( $prow );
}
?>
</table>
Mysql 分类
| id | parent_id | category_name | category_description |
|---|---|---|---|
| 1 | 0 | General | desc |
| 2 | 1 | Announcements | desc |
我要创建的结果是这样的
有谁知道如何解决这个问题,因为<?php ?> 也会导致 HTML 的其他部分消失。
【问题讨论】:
标签: php mysql parent-child categories