echo $begrüßung;
ich frage von meiner Datenbank Bildunterschriften ab, und sortiere die Ausgabe nach Aufnahmedatum und forlaufender Bild-Id:
Jetzt heissen die jeweils ersten Bilder z.B. "foto1" anstelle von "foto01", d.h. die Reihenfolge wärefoto1
foto10
foto11
(...)
foto2was echt blöd ist :)
Du möchtest das, was anderswo "natürliche Sortierung" (natural sort) genannt wird. MySQL bietet solch eine Möglichkeit nicht an.
Gibt es eine Möglichkeit, dies so zu ändern, dass 1-9 zuerst kommen OHNE das ich sie auf 01-09 ändere?
Ja. Die Namen foto1 bis foto9 unterscheiden sich von den foto10 bis foto99 darin, dass die Stringlänge eins weniger ist. Das gleiche Prinzip hast du bei Werten über 99.
fotoX < fotoXY < fotoXYZ < ...
Sortiere also zunächst nach der Länge des Namens und dann nach dem Namen selbst.
Wenn allerdings "foto" immer unterschiedlich heißt, beziehungsweise du die Zugehörigkeit zu einer Serie anhand des ersten Teils festmachst, brauchst du noch ein weiteres Sortiermerkmal. Doch damit stößt du meines Wissens nach an die Grenze des mit MySQL machbaren, weil Reguläre Ausdrücke (um vom Anfang des Strings alle Buchstaben zu extrahieren) nur in der WHERE-Klausel, nicht aber in der ORDER BY-Klausel angewendet werden können. Du solltest dann die Serienzugehörigkeit anderweitig als über den Dateinamensanfang kennzeichnen.
echo "$verabschiedung $name";