Извеждане на резултат от Mysql

Widoll

Registered
Здравейте! Идеата ми е да изкарвам категории и подкатегориите към тях.Но се получава следното :
Имам таблиците:
categories(id,name)
p_categories(id,p_name,pcatid)
с примерно съдържание

в Categories:
ID name
5 Нова категория

в p_categories
ID p_name pcatid
1 p_name 5
2 p_name2 5

Изпълнявам следния код:
Код:
$result = mysql_query("SELECT * FROM `categories` JOIN `p_categories` ON ( categories.id = p_categories.pcatid )")
or die("Не може да изпълни заявката"); //Правим заявката, към базата данни. Нея ще я обясня под кода
while($row = mysql_fetch_array($result)) {
$id = $row['id'];
$name = $row['name'];
$p_name = $row['p_name'];
echo "<ul>$name</ul>
<li>$p_name</li>";
}
и изкарва това
Нова категория

p_name

Нова категория

p_name2

Опитвам се да изкарам резултатите по следния начин

Категория
-Подкатегория
-Подкатегория
Категория

Струва ми се, че много съм се объркал и се надявам да получа съвет. Благодаря !
 
Благодаря, но ще ми е нужен пример с обяснение, за да мога да разбера как действа това. Извинете ме, ако съм нахален, но искам да разбера как става това, а не просто да копирам някакъв код.
 
Взех този код от тази тема


Код:
$cats = mysql_query("SELECT * FROM `categories` RIGHT OUTER JOIN `p_categories` ON ( categories.id = p_categories.pcatid )");

$CatName = array();
while($cat = mysql_fetch_array($cats)) {
$page = $cat['page'];
if(!in_array($cat['name'], $CatName)) {

$CatName[] = $cat['name'];
$showcat = $cat['name'];

echo "<a href=$page>$showcat</a>page:$page <br>";
}
$showpcat = $cat['p_name'];

echo "<a href=$page>$showpcat</a>page:$page <br> ";

}

Преправих го според нуждите ми, но не ми изкарва категориите в които няма подкатегории
 
Много котки, много нещо...

PHP:
$sql = mysql_query("SELECT * FROM `categories` LEFT JOIN `p_categories` ON ( categories.id = p_categories.pcatid )");

$previous_category_id = 0;

while($data = mysql_fetch_array($sql)) {

    if($previous_category_id != $data['id']) {

        $previous_category_id = $data['id'];

        echo "<a href=".$data['page'].">".$data['name']."</a>page:".$data['page']."<br>";
    }

    echo "<a href=".$data['page'].">".$data['p_name']."</a>page:".$data['page']." <br> ";

}
 

Back
Горе