簡體   English   中英

PHP類別菜單(mySQL)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM