Hallo,
$datum = "$row[datum]";
Hier sollte besser: $datum = $row['datum']; stehen.
[...]
echo date("d. F Y", mktime(0,$h,$d,$d,$m,$y));;
wenn ich das richtig verstanden habe, ist doch $row[datum] ein einfacher timestamp, oder?
dann kannst du den doch einfach der date()-Funktion übergeben (mit deinem substr und dem mktime machst du doch auch nichts anderes, als einen Timestamp zu produzieren), also so:while (...) {
echo date("d. F Y", $row[datum]);
}
So ähnlich (nur ein anderes Format) stand es schon im OP.
[...]
man möge mich korrigieren wenn ich falsch liege :-)
OK. Der Timestamp in MySql ist abhängig von der Feldbreite eine Datumsangabe im ISO-weisnichtmehr-Format. Sie beginnt mit der größten Einheit (Jahr) und endet mit der kleinsten Einheit (Sekunden), wobei die Werte ohne Trennzeichen aneinander gereiht werden. Demnach ist die einfachste Möglichkeit den Code anzupassen, die Abfrage nach Mirkos Vorschlag zu ändern.
Gruß Alex