【发布时间】:2016-07-18 19:27:25
【问题描述】:
我正在尝试使用数据库制作带有标题的列表。例如,我希望列表如下所示:
编程 - 学习 PHP - 使用 PHP 制作博客- 学习斯威夫特 - 学习红宝石
如您所见,有主标题Programming,然后是列表内容本身。我希望能够进行嵌套列表,如下所示Learn PHP 部分以及通常的列表。很抱歉,如果这令人困惑。
我的 PHP 代码在这里工作:
<?php
$db = new mysqli('localhost', 'root', '', 'joshuapriestley');
$data = $db->query("SELECT * FROM goals");
while($row = $data->fetch_assoc()) {
if($row["parent_id"] == 0) {
echo "<ul>";
echo "<li id=\"list-title\">" . $row["message"] . "</li>";
$sub = $db->query("SELECT * FROM goals WHERE parent_id = " . $row["id"] . " AND sub_parent_id = 0");
while($sub_row = $sub->fetch_assoc()) {
echo "<li>" . $sub_row["message"];
$sub2 = $db->query("SELECT * FROM goals WHERE sub_parent_id = " . $sub_row["id"]);
if($sub2->num_rows != 0) {
echo "<ul>";
while($sub2_row = $sub2->fetch_assoc()) {
echo "<li>" . $sub2_row["message"] . "</li>";
}
echo "</ul>";
}
echo "</li>";
}
echo "</ul>";
}
}
?>
但对我来说,3 个 while 循环似乎非常低效。有一个更好的方法吗?我有一个数据库:
parent_id 用于常规项目,sub_parent_id 用于子项目。
这是显示结果的另一张图片: Result
【问题讨论】:
标签: php mysql database list mysqli