Mailinglisten-Archive |
> Nun mein Problem: Wie kann ich realisieren, dass ich den kompletten > Kategoriebaum angezeigt bekomme? Mit Deiner beschriebenen Struktur ist das nicht mit einem einzigen SQL-Statement möglich. Du musst also rekursiv in PHP die Parent-Kategorie ermitteln, bis der Parent 0 ist. Das könnte ungefähr so aussehen (Framework): function category_get_parents($cat_id, $parents = false) { global $db; // Beim ersten Aufruf den String initialisieren if(!$parents) { $parents = ""; } // Aktuelle Kategorie aus der Datenbank holen $query = "SELECT * FROM tabelle WHERE cat_id = $cat_id"; $db->query($query); $db->next_record(); // Den Namen der Kategorie zum wachsenden $parents-String anfügen $parents .= $db->Record["cat_name"]."/"; // Sind wir schon an der Root-Kategorie angelangt? if($db->Record["parent_id"] == 0) { // Ja - wir verabschieden uns return($parents); } // Diesselbe Funktion wieder aufrufen, um den Parent der aktuellen Kategorie zu holen $parents = category_get_parents($db->Record["parent_id"], $parents); // Und den ganzen String zurückgeben return($parents); } // Motor anwerfen print(category_get_parents(42)); Kristian war das nicht genug, deswegen hat folgendes geschrieben: http://www.koehntopp.de/kris/artikel/sql-self-references/ Damit soll man mit einer einzigen SQL-Query den gesamten Baum erhalten. > Ich habe immer noch probleme mit meinem Chat. Ich bekomme immer die Meldung > "MySQL Client ran out of Memory" sobald mehr als 3 Leute etwas posten. Kann > man das irgendwie umgehen? Diese Frage ist wahrscheinlich in einer MySQL-Liste besser aufgehoben. Mit freundlichen Grüßen, Tobias Ratschiller -- <?$I=1.125;while($I>=-1.225){for($l= /* Tobias Ratschiller */ -2;$l<=1;$l+=3/79){$Q=$u=0;for($E=127; /* New Media Consultant */ $Q*$Q+$u*$u<4&&--$E>32;){$o=$Q;$Q=$Q* /* http://phpWizard.net */ $Q-$u*$u+$l;$u=2*$o*$u+$I;}printf("%c",$E);}print("\n");$I-=9/88;} ?>
php::bar PHP Wiki - Listenarchive