Mailinglisten-Archive |
Hi, natürlich ist die parent->child Struktur die sauberste. ABER: Wenn gar keine Änderungen an der Datenbank möglich sind, weil das Ding bereits an vielen anderen Stellen oder von anderen Leuten verwendet wird, kann auch folgendes gemacht werden: Warnung vorab: - bei großen Datenmengen laufzeitintensiv, - sicher mehr Programmieraufwand, als mal kurz die Tabelle zu ändern aber es geht: 1) Select über Tabelle, Ermitteln der tiefsten Hierarchieebene durch zählen der Punkte in jeder Zeile z.B.: 1.2.3.4.5 ==> 4 Punkte == 5 Ebenen 2) Anlegen eines Arrays in php (oder einer Sprache deiner Wahl, ich nehm Java) mit ausreichend Feldern, hier für 5 Ebenen und das Textfeld 3) Auslesen der Einträge aus der Datenbank in das Array dabei mit substring() o.ä. die Adresse splitten. 4) Array sortieren mit den Array-Funktionen und ausgeben. Alternativ kann statt eines Arrays auch eine temporäre Tabelle in mysql angelegt werden, ist sehr performant, das lohnt sich aber nur bei grossen Datenmengen. Das zerschneiden des Strings ist in php eher leichter als auf purer SQL Ebene. Die Arbeitsschritte bleiben gleich. Füllen der Tabelle nach dem Schema insert into bla select substring(Feld, Pos, indexOf('.')+1) .... Viel Spass, Rüdiger ______________________________________________________________________________ Virenschutz inklusive: Bei WEB.DE FreeMail können Sie jeden Dateianhang auf Viren prüfen http://freemail.web.de/?mc=021130 -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive