phpbar.de logo

Mailinglisten-Archive

[php] Pfadbäume - durchlaufen und sortieren

[php] Pfadbäume - durchlaufen und sortieren

Yannik Hampe yannik at cipher-code.de
Mon Jan 29 15:26:09 CET 2007



Tim wrote:
> Hallo zusammen,
> 
> ich beschäftige mich gerade mal mit Pfaden und Pfadbäumen. Trennzeichen ist
> bei mir das Slash-Zeichen. Die Pfade werden in einer MySQL Datenbank-Tabelle
> in einer Spalte abgebildet. Jetzt habe ich das Problem - wahrscheinlich wie
> viele andere auch - dass bestimmte Sortier-Reihenfolgen eingehalten werden
> sollen. Die einzelnen Pfad-Segmente sind numerisch, so dass spätestens nach
> der 11 Position Probleme mit der numerischen Sortierung auftreten. Also:
> 
> 0/1/1
> 0/1/11
> 0/1/2
> 0/1/3
> 
> etc...
> 
> Ich brauche die Pfade aber numerisch nach letzter Stelle sortiert. Also:
> 
> 0/1/1
> 0/1/2
> 0/1/3
> ...
> 0/1/11

Ich emphele dir eine feste String-Länge zu nehmen...
Also zum Beispiel immer 3 Stellen:
000/001/001
...
000/001/011
(natürlich kannst du die / dann auch gleich ganz weglassen...)
Dann kannst du einfach ORDER BY nehmen. Das kannst du natürlich auch so,
sit aber viel komplizierter:
Du kannst dir mit LEFT, RIGHT, STRPOS usw. in MySQL Kommandos
zusammenbastalen um am Ende sowas wie ein explode() wie in php zu haben.
Ich fürchte nur, dass du da keine Freude dran haben wirst.
Wenn du feste Stringlängen nicht nehmen willst, weil sie schlecht
skalierbar sind (wenn du die 3-stellige (over x-stellige) Begentzung
sprengst), dann solltest du vielleicht besser nested sets nehmen. Hier
ist eine sehr schöne Beschreibung dazu:
http://www.klempert.de/nested_sets/
> 
> Liebe Grüße
> Tim
> 

Yannik

php::bar PHP Wiki   -   Listenarchive