$sth = $db->query("SELECT * FROM categories WHERE parent = 0");
$sth->setFetchMode(PDO::FETCH_ASSOC);
while ($row = $sth->fetch()) {
echo $row['title'] . '<br />';
$sth2 = $db->prepare("SELECT * FROM categories WHERE parent = ?");
$sth2->bindParam(1, $row['id']);
$sth2->execute();
while ($row2 = $sth2->fetch()) {
echo '..' . $row2['title'] . '<br />';
$sth3 = $db->prepare("SELECT * FROM categories WHERE parent = ?");
$sth3->bindParam(1, $row2['id']);
$sth3->execute();
while ($row3 = $sth3->fetch()) {
echo '....' . $row3['title'] . '<br />';
}
}
}
正如你所看到的,我在每个循环中都有'硬编码',主要是“主要类别”,“子类别”,最后是子类别。 但是我觉得我可以改变这个,自动循环子类别中的子类别,如果有的话。
我的SQL结构很简单: ID 亲 标题 描述
我无法理解我应该如何解决这个小问题...在if语句或其他什么时候循环?帮助我。
答案 0 :(得分:0)
如果类别数量不是太大,你可以做什么,从数据库中获取所有类别,然后在php中构建一个多维数组。
有关详细信息,请参阅this question and the answers。