Hallo,
Ich hänge hier beim Praktikum grad an inem Problem. Ich habe eine ganz einfache Tabelle für Kategorien angelegt, die hat die felder "katid", "overid", "name", "description".
Ich will bei meinem script jetzt die Kategorien, samt Unterkategorien, in der Art anzeigen lassen:
Kategorie 1
-Unterkategorie1
-Unterkategorie2
--bla1
--bla2
---blablub.
etc.
overid enthält die parentId also die übergeordnete Kategorie.
Ich habe schonmal vorgarbeitet und folgende Funktion erstellt:
Jetzt weiß ich, dass ich eine weitere Funktion erstellen muss, welche sich rekursiv aufruft. Ich bleibe aber bei der Umsetzung dessen hängen.
Nachher will ich ein array haben, welches in der richtigen Reihenfolge (also alle Kategorien auf dem gleichen Level sind nach dem Alphabet geordnet) alle Kategorien entält, samt einer Tiefe damit ich die Zeile gemäß der Tiefe einrücken kann.
Wär nett wenn ihr mir eben helfen könntet.
MfG Oli
Ich hänge hier beim Praktikum grad an inem Problem. Ich habe eine ganz einfache Tabelle für Kategorien angelegt, die hat die felder "katid", "overid", "name", "description".
Ich will bei meinem script jetzt die Kategorien, samt Unterkategorien, in der Art anzeigen lassen:
Kategorie 1
-Unterkategorie1
-Unterkategorie2
--bla1
--bla2
---blablub.
etc.
overid enthält die parentId also die übergeordnete Kategorie.
Ich habe schonmal vorgarbeitet und folgende Funktion erstellt:
PHP-Code:
function getCat($overId)
{
global $db;
$subCat = array();
if($overId != "")
{
$underkat = $db->query("SELECT * FROM ccc_kategorie WHERE overid = ".$overId." ORDER BY katid DESC");
$anzahl = $db->num_rows("SELECT * FROM ccc_kategorie WHERE overid = ".$overId."");
} else {
$underkat = $db->query("SELECT * FROM ccc_kategorie WHERE overid = 0 ORDER BY katid DESC");
$anzahl = $db->num_rows("SELECT * FROM ccc_kategorie WHERE overid = 0");
}
if($anzahl != 0)
{
$i=0;
while($row = $db->fetch_array($underkat))
{
$subCat[$i] = array();
$subCat[$i]['katid'] = $row['katid'];
$subCat[$i]['overid'] = $row['overid'];
$subCat[$i]['name'] = $row['name'];
$subCat[$i]['desciption'] = $row['desciption'];
$i++;
}
}
return $subCat;
}
Nachher will ich ein array haben, welches in der richtigen Reihenfolge (also alle Kategorien auf dem gleichen Level sind nach dem Alphabet geordnet) alle Kategorien entält, samt einer Tiefe damit ich die Zeile gemäß der Tiefe einrücken kann.
Wär nett wenn ihr mir eben helfen könntet.
MfG Oli
Kommentar