[英]PHP Category Menu (mySQL)
這可能是一個簡單的解決方法-但是我在嘗試設置它時遇到了很多問題。 基本上,我正在嘗試為文章頁面創建類別菜單。 “列表”具有每個類別,並且在該列表下方將是每個具有相同屬性的文章。
我有兩個表,其中一個表包含所有類別,另一個表包含新聞發布。 但是由於某種原因...僅顯示第一篇文章-而不顯示后者...
例如:
非洲動物
獅子
象
農場動物
豬
<?php
$STH = $DBH->query('SELECT * FROM articles_category');
while($row = $STH->fetch()) {
echo "<li>\n";
echo "<a href='' class='nav-top-item'>". $row['category'] ."</a>\n";
echo "<ul>\n";
$STH = $DBH->query('SELECT * FROM articles WHERE category="'. $row['category'] .'"');
while($row = $STH->fetch()) {
echo "<li><a href='articles/article?id=". $row['id'] ."'>". $row['title'] ."</a></li>\n";
}
echo "</ul>\n";
echo "</li>\n";
}
?>
$STH_2 = $DBH->query('SELECT * FROM articles ...'
while($row_2 = $STH_2->fetch()) {
echo "<li><a href='articles/article?id=". $row_2['id'] ."'>". $row_2['title'] ."</a></li>\n";
}
您正在將子類別加載到相同的數組$ STH中,更改名稱,第二個也應使用不同的名稱-> $ row_2將有幫助
您正在覆蓋內部循環中的$STH
變量。
更改:
$STH = $DBH->query('SELECT * FROM articles WHERE category ...
至:
$STH2 = ...
while($row = $STH2->fetch()) {
對於可能不同的兩個操作,您可能不能使用相同的標識符(在$STH
的情況下會發生這種情況。由於這樣做,您在內部作用域中覆蓋了$STH
並傳播到外部循環條件。
您應該更改變量名稱,還應該考慮將其更改為更具描述性的名稱:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.