Меню категорий PHP (MySQL) - PullRequest
       0

Меню категорий PHP (MySQL)

0 голосов
/ 24 февраля 2011

Это, вероятно, легко исправить - но я получаю МНОГО проблем, пытающихся это настроить. В основном я пытаюсь создать меню категории для страницы статьи. «Список» имеет каждую категорию, и под этим списком будет каждая статья с таким же атрибутом.

У меня есть две таблицы, одна из которых содержит все категории, а другая - новостные сообщения. И все же по какой-то причине ... появляется только первый пост, а не последний ...

Например:

Африканские животные

Lion

Elephant

Сельскохозяйственные животные

Pig

<?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";
            }   
?> 

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011
$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 поможет

1 голос
/ 24 февраля 2011

Вы можете не использовать один и тот же идентификатор для двух операций, которые должны быть разными (что происходит в вашем случае с $STH. Из-за этого вы перезаписываете $STH во внутренней области видимостии это распространяется на условие внешнего цикла.

Вам следует изменить имя переменной, а также рассмотреть вопрос об изменении его на более описательное имя:)

1 голос
/ 24 февраля 2011

Вы перезаписываете переменную $STH во внутреннем цикле.

Изменение:

$STH = $DBH->query('SELECT * FROM articles WHERE category ...

Кому:

$STH2 = ...
    while($row = $STH2->fetch()) {  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...