пишу что-то типа Карты сайта, всё ок, кроме подкатегорий

Dzen

Новичок
пишу что-то типа Карты сайта, всё ок, кроме подкатегорий

Есть таблица Pages pid, cid, title
Есть таблица Pages_Categories cid , title

запросом хочу вывести список всех категорий и подкатегорий , типа:
1.Категория 1 - подстраница1 из Категории1
!! 2.Категория 1 - подстраница2 из Категории 1 !!
3.Категория 2 - подстраница1 из Категории 2
ну и т.д.
написал запрос, всё хорошо работает, НО в категории почему-то выводится только одна подстраница, хотя их там несколько:-\, то есть пункт !! 2.Категория 1 - подстраница2 из Категории 1. !! показыватся не хочет:(

Подскажите где ошибка?:(
PHP:
$sql="SELECT * FROM pages_categories order by cid";
$result=$db->sql_query($sql);
$i=0;
while($row=$db->sql_fetchrow($result)) {
        $i++;
        $cat_link='';
        $x=$row['cid'];
        while($x) {
         $sql1="select * from pages where cid='$x'";
  $result1=$db->sql_query($sql1);
  $row1=$db->sql_fetchrow($result1);
                $x=$row1['parentid'];
                $cat_link2='index?pid='.$row1[pid].'"> ->'.$row1['title'].'</a>';
                        }
        $db->sql_freeresult($result1);
        $cat_link.='<a href="index.php?cid='.$row[cid].'"> '.$row[title].'</a>';
        echo $cat_link.$cat_link2.'<br>';
 

CT

Новичок
Код, в виде, в котором ты его привел, мало того что нечитабельный, так еще и нерабочий.

А ошибка скорее всего в том, что ты на каждый вывод категорий страниц (pages_categories), делаешь всего один вывод страниц (pages). При этом, тщательно получаемые тобой $cat_link2 во внутреннем while, ты с упорством затираешь новыми значениями, имея на выходе последнее значение.
 

Dzen

Новичок
почему не рабочий? всё работает, cat_link2 выводит страницы, cat_link выводит категории.
ошибка только в том что показываются не все страницы в категории.
там такая система:
одна таблица Категории
cid=1 title =" текст категории"
cid=2 title =" текст категории"
cid=3 title ="текст категории"

другая таблица Страницы:
cid=2 pag1 title =" текст страницы"
cid=2 page 2 title =" текст страницы"
сid=3 page 3 title =" текст страницы"

cid=2 означает что все страницы входят в категорию cid2.

а при запросе что выше я написал выводится только:
1.Категория cid2 + страница cid=2 pag1 title =" текст страницы"
и
2.Категория cid3 + сid=3 title =" текст страницы".

a page 2 не показываются.

То есть надо как-то проверку cid'a чтоли поставить , что мол если cid равен предыдущему значению то повторить цикл, только как это сделать я пока не понял, или запрос правильно организовать:-\
 

alpine

Новичок

Dzen

Новичок
В каком смысле не верно? интересно даже. Только что проверил всё работает, ну кроме той проблемы. Не правильный алгоритм? могу прислать скриншот всё работает.
 
Сверху