ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
342
342
EMPFEHLEN
-
Hallo!
Ich habe eine Tabelle mit Kategorien. Hauptkategorien haben eine "0" im Feld "parentID". Nun habe ich es bereits geschafft, dass nur die Hauptkategorien angezeigt werden und wenn eine Hauptkategorie gewählt wurde, dessen Unterkategorien angezeigt werden.
Nun haben aber einige Unterkategorien wiederum Unterkategorien und so weiter. Wie kann ich das effizient lösen, ohne dass ich durchzähle wieviele Unterkategorien eine Hauptkategorie maximal hat und den Code oben weiter erweitere? Und vor allem, wie schaffe ich es, dass die übergeordneten Kategorien offen bleiben, wenn ich eine Unterkategorie wähle?PHP-Code:$categorieresult = mysql_query ( "Select `ID`, `parentID`, `name` FROM categories WHERE `parentID` = '0' ORDER BY `name`" );
while ( $categorierow = mysql_fetch_assoc ( $categorieresult ) ) {
echo "<li class='dots'><a href='index.php?action=search&categorie=$categorierow[ID]'>$categorierow[name]</a></li>";
if (($categorie != "") && ($categorierow [ID] == $categorie)) {
$parentcategorieresult = mysql_query ( "Select `ID`, `parentID`, `name` FROM categories WHERE `parentID` = '$categorie' ORDER BY `name`" );
while ( $parentcategorierow = mysql_fetch_assoc ( $parentcategorieresult ) ) {
echo "• <a href='index.php?action=search&categorie=$parentcategorierow[ID]'>$parentcategorierow[name]</a><br>";
}
}
}
Habt Ihr eine Lösung für mich? Vielen Dank!Geändert von Sasser (04.09.09 um 13:18 Uhr)
-
04.09.09 13:26 #2
Stehen ALLE Kategorien in einer Tabelle?
also:
Kat = Kategorie
U = Unter
Kat1
UKat1
UUKat 1
Kat2
UKat2
UUKat 2.1
UUKat 2.2
...
Ist so die Struktur?
Oder sind die Kats, UKats und UUKats in getrennten Tabellen?
Das hab ich nicht ganz verstanden.
-
Also ich habe 3 Felder:
ID
parentID
name
Die ID ist immer die eindeutige ID der Kategorie und wenn "parentID" nicht Null ist, ist Sie eine Unterkategorie. In dem Fall gibt "parentID" die ID an, unter welche Hautkategorie sie gehört.
Beispiel:
Auto (ID=1,parentID=0)Autos kaufen (ID=2,parentID=1)Autos verkaufen (ID=3,parentID=1)Ich habe folgendes im Netz gefunden, allerdings ohne Code und dass ist genau so wie ich es zur Zeit habe:AUDI (ID=4,parentID=3)
Baumdarstellung mit Vater-Zeiger
Eine sehr beliebte Variante zur Baumdarstellung ist, die einzelnen Knoten mit einer eindeutigen ID zu versehen und dann bei jedem Knoten die jeweilige Vater-ID zu speichern. Da über die Vater-ID auf den Vater (übergeordneter Knoten) gezeigt wird, ergibt sich die Bezeichnung ,,Baumdarstellung mit Vater-Zeiger``. Konkret ergeben sich daraus die Werte in Tabelle 7.1, wobei eine Vater-ID mit 0 bedeutet, daß es die Root (engl.: Wurzel) ist.Geändert von Sasser (04.09.09 um 13:45 Uhr)
-
04.09.09 13:55 #4
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
das nennt man auch "Adjacency List Model". Schau Dir den Artikel "Storing Hierarchical Data in a Database" an, dort findest Du die benötigte rekursive Funktion, um den Baum auszulesen. Auf der 2. Seite findest Du eine mögliche Alternative zur Speicherung, die auch als "Nested Sets" bekannt ist.
LGDa es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
-
So, ich habe nun einmal das Beispiel ausprobiert, aber ich bekomme eben nur die Unterkategorien der Hauptkategorien angezeigt. Die Unterkategorien der Unterkategorien werden nicht angezeigt.
PHP-Code:function parent($parentID, $level) {
$result = mysql_query ( "SELECT `ID`, `name` FROM categories WHERE parentID = '$parentID' ORDER BY `name`");
while ($row = mysql_fetch_array($result)) {
echo str_repeat ( '', $level ) . $row [name] . "<br>";
parent ( $row [ID], $level + 1 );
}
}
$categorieresult = mysql_query ( "Select `ID`, `name` FROM categories WHERE `parentID` = '0' ORDER BY `name`" );
while ( $categorierow = mysql_fetch_assoc ( $categorieresult ) ) {
echo "<li class='dots'><a href='index.php?action=search&categorie=$categorierow[ID]'>$categorierow[name]</a></li>";
parent ( $categorierow [ID],0 );
}
Ähnliche Themen
-
array aus Datenbank (Kategorieliste)
Von Gunah im Forum PHPAntworten: 1Letzter Beitrag: 03.09.09, 12:44 -
Nestedset Unterkategorien auslesen
Von low-group im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 01.11.06, 20:22 -
unterkategorien anlegen
Von xtraMen im Forum PHPAntworten: 2Letzter Beitrag: 27.09.04, 13:06 -
JConfig ohne Unterkategorien?
Von Snape im Forum JavaAntworten: 5Letzter Beitrag: 02.06.04, 14:11





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren