• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Strings sortieren

zvenson

Neues Mitglied
Hi!

Ich habe in meiner db strings (namen), die in folgender Form sind:
Chris Birne
Alf Apfel
Bernd Cordula


Die werden bei mir durch
$query .= " ORDER BY m.mf_name ASC";
nun sortiert nach dem ersten Buchstaben ausgegeben also

Alf Apfel
Bernd Cordula
Chris Birne

toll wäre nun wenn es eine Funktion gäbe, die immer nach dem zweiten bzw. letzten Wort zuerst guckt und das ganze danach sortiert also:

Alf Apfel
Chris Birne
Bernd Cordula


ist sowas möglich? Wäre super wenn mir jemand einen Tipp geben könnte! Besten Dank!

zvenson
 
Hättest du den Vor- und Nachnamen getrennt in zwei Felder, hättest du das Problem nicht. Ich würde dir vorschlagen die Struktur dementsprechend abzuändern und die Namen anhand vom Leerzeichen zu trennen und neu einzutragen.
 
jau das wäre schön - aber so einfach geht das nicht weil ich mich in virtuemart bewege und wenn ich das feld herstellername ändere dann muss ich an 1000 ecken schrauben - vielleicht gitb es ja doch noch ne sortierfunktion - wäre super wenn mir jemand diesbezüglich einen tipp geben könnte
 
Also wenn das nicht in Frage kommt, dann würde ich die Namen, also an den Leerzeichen exploden und dann mit php (dein $query .= sieht ja nach PHP aus) im Array sortieren. (Erweitert: Die ganze Tabelle nach diesem Schema sortieren und "sortiert" wieder in die Tabelle eintragen, z.b.)
Das dürfte zur Not Abhilfe schaffen. Jedoch währe crash's Methode einfacher und sinnvoller.

Mfg
 
vielen dank für die Antworten! Hab nun doch "einfach" ein Vornamenfeld miteingebaut welches zwar angezeigt wird aber bei der Sortierung nicht mitberücksichtigt wird. Im Zweifelsfall wird zwar nun ein
Abraham Müller
erst nach einem
Zacharias Müller angezeit, ich glaube aber, dass man damit leben kann!

Danke nochmals!
 
was natürlich auch noch eine, auch wenn grade nicht die sauberste Lösung wäre, möglichkeit ist folgendes:

du rufst deine Tabelle auf, splitest den String nach dem Leerzeichen erhälst dann den Vornamen und Nachnamen getrennt, dann schreibst du die Datensätze in eine Temporiäretabelle rein wo der Vor- und Nachname getrennt sind, die kannst du dann sortieren wie du willst und auslesen danach falls du die Tabelle garnet mehr brauchst Leerst du sie anschliessend.




Ja ich weiss ist net die sauberste und effizienteste Lösung aber es ist eine Lösung ;)
 
Ich weiß zwar nicht, warum man Strings erst in eine Tabelle schreiben muss um sie zu sortieren, anstatt sie in ein Array zu lesen und dort gleich zu sortieren...

Aber beim Splitten des Namens bitte nicht "am Leerzeichen" splitten, sondern am richtigen, es könnten ja auch zwei Leerzeichen drin sein! Oder noch mehr.
 
Zurück
Oben