我有一个包含以下数据的数据库表:
categoryId categoryName parentCategory
men Men root
women Women root
shoes Shoes root
mensshirts Men's Shirts men
menspants Men's Pants men
mensjeans Men's Jeans men
mensvests Men's Vests men
womensshirts Women's Shirts women
womenpants Women's Pants women
我正在使用递归函数打印出分层菜单。代码如下。
function display_children($parent) {
global $connect;
$query = "SELECT categoryId, categoryName FROM categories WHERE parentCategory='$parent'";
$result = mysqli_query($connect,$query);
if ( $result === false ) {
printf("Query Error: %s\n", mysqli_error($connect));
exit();
}
echo "<ul>";
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
echo "<li>".$categoryName."</li>";
display_children($categoryId);
}
echo "</ul>";
mysqli_close($connect);
}
display_children('root');
结果,我在屏幕上打印出来:
- 男士
- 男士衬衫
- 男士裤子
- 男士牛仔裤
- 男士背心
- 女性
- 鞋
递归函数没有打印出其余的子猫,我不知道为什么。我的测试/调试已经确认,在 mensvests 作为 categoryId 传递给函数后,下一个通过的 categoryId 是 women,它应该定位最后的 subcats。有任何想法吗?