dedlfix: ORDER BY scheint nicht zu funktionieren

Beitrag lesen

echo $begrüßung;

Nun wird sortiert, aber leider kommen die Ergebnisse in der Reihenfolge
1
10
100
kann ich das so
1
2
3
10
11
12
sortieren lassen, ohne dass ich
001
002
als Nummer schreiben muss?

Das geht nur dann, wenn dein DBMS die so genannte Natural Sort Order unterstützt. MySQL kann das nicht. Neben der von Vinzenz vorgeschlagenen günstigeren Tabellenstrukturierung gibt es weitere Alternativen.

Du schreibst dir für dein DBMS eine Funktion, die dir den sortierfähigen Wert zurückliefert, also aus A1 ein A001 macht, und gibst die als Sortierkriterium an.

Du sortierst in PHP mit usort() und strnatcmp()/strnatcasecmp(). Das setzt voraus, dass du die Ergebnismenge komplett abgeholt und zwischengespeichert hast. Bei einer "haushaltsüblichen" DVD-Sammlung dürfte der dabei anfallende zusätzliche Speicherverbrauch problemlos verkraftbar sein.

echo "$verabschiedung $name";