phpbar.de logo

Mailinglisten-Archive

Order by

Order by

Ruediger Weiss ruediger_weiss@web.de
Thu Nov 7 14:57:24 2002


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