mySQL Date Format ausgeben

Also zu meinem Problem:

Ich möchte aus der Datenbank “1211846551” das als Datum ausgeben, und dazu habe ich folgendes Query:

$getreplies="SELECT *, DATE_FORMAT(realtime, '%d.%m.%Y - %H:%i') as 'realtime' FROM forumposts WHERE parentid='$id' ORDER BY postid desc";
$getreplies2=mysql_query($getreplies) or die("Could not get replies");
while($getreplies3=mysql_fetch_array($getreplies2))

Die ausgabe in HTML sieht dann so aus:

  print "<tr><td valign='top' width=\"480\"><strong>Gepostet am $getreplies3[realtime]</strong><br />\n<hr />";

Das Problem bei dem ganzen ist, das ich absolut nichts nach “Gepostet am” angezeigt bekomme.
Woran liegts, kann mir jemand helfen?

Danke für die Hilfe im vorraus :wink:

Dir fehlt irgendwie der Zähler:

$getreplies3[$i][‘realtime’] bzw. $getreplies3[0][‘realtime’]

Danke für deine Antwort, aber wenn ich das so einsetzte wie du mir sagtest bekomme ich nur das Ausgegeben:

Gepostet am [‘realtime’]

also nicht das Datum.

Dir Form ohne Anführungszeichen ist zwar falsch, wird aber trotzdem interpretiert. Entweder weglassen, oder das verwenden:

print "<tr><td valign='top' width='480'><strong>Gepostet am ".$getreplies3[0]['realtime']."</strong><br />\n<hr />";
Sollte eigentlich funktionieren.

Ich habe nun den Code den du eben geschrieben hast, mal eingefügt nun bekomme ich:

Gepostet am 2

ausgegeben

@freggle: Du hast den Fehler identifiziert, allerdings weiß ich nicht, wie du da auf irgendeine Zählvariable kommst.

Falls das nicht funktioniert, ersetze das mal mitvar_dump($getreplies3);.

Lass dir einfach mal den Inhalt des Arrays mit print_r($getreplies3) bzw. print_r($getreplies3[0]) ausgeben.

Kannst aber auch das Query im phpmyadmin ausführen um zu sehen was dabei rauskommt. (Variablen musst du halt mit möglichen Werten ersetzen)

@Scram: Die Abfrage wird nicht durch ein “Limit 1” auf eine Zeile begrenzt, folglich muss ein mehrdimensionales Array herauskommen. Wieso aber trotzdem Müll rauskommt werden wir aber auch noch rausfinden.

Die Schlussfolgerung wäre ja logisch, wenn die mysql_fetch_*-Funktionen alle Reihen auf einmal zurückgeben würden. Tun sie aber nicht.

Wenn ich “var_dump($getreplies3);” angebe bekomme ich die ganzen mySQL Tabelle ausgegeben, wenn ich “print_r($getreplies3) bzw. print_r($getreplies3[0])” bekomme ich nichts ausgegeben. (Das ganze soll ein Forum darstellen :wink:)

Mir ist glaub ich gerade noch etwas aufgefallen.
Das “1211…” ist doch ein Unix-Timestamp?! Müsste man diesen Timestamp nicht vorher per FROM_UNIXTIME(‘1211…’) in einen Zeitstring umwandeln bevor man mit DATE_FORMAT dran geht?

Sei doch so gut und poste zumindestens den ersten Teil des var_dump, so das zumindestens eine vollständige Zeile aus dem Array zu sehen ist.

var_dump (komplett)

array(21) { [0]=> string(2) “21” [“postid”]=> string(2) “21” [1]=> string(4) “T3qu” [“author”]=> string(4) “T3qu” [2]=> string(0) “” [“title”]=> string(0) “” [3]=> string(5) “Muha²” [“post”]=> string(5) “Muha²” [4]=> string(20) “01.06.2008, 02.36.15” [“showtime”]=> string(20) “01.06.2008, 02.36.15” [5]=> string(10) “1212280575” [“realtime”]=> NULL [6]=> string(4) “T3qu” [“lastposter”]=> string(4) “T3qu” [7]=> string(1) “0” [“numreplies”]=> string(1) “0” [8]=> string(2) “18” [“parentid”]=> string(2) “18” [9]=> string(1) “0” [“lastrepliedto”]=> string(1) “0” [10]=> NULL }

der array erhöht sich allerdings jedesmal wenn ein neuer Posts geschrieben wird :wink:

[5]=>“1211…”
[realtime]=>NULL

bestätigt wohl meine Vermutung mit dem FROM_UNIXTIME

$getreplies=“SELECT *, DATE_FORMAT(FROM_UNIXTIME(realtime), ‘%d.%m.%Y - %H:%i’) as ‘realtime’ FROM forumposts WHERE parentid=’$id’ ORDER BY postid DESC”;

Somit würde sich auch die leere Ausgabe des Ursprungsskripts erklären.

Das print_r aber nichts ausgibt ist auch sehr komisch.

Sooo das ganze funktioniert jetzt! Danke! :slight_smile:

Danke an alle die mir geholfen haben!

kann closed werden!

Wie sieht die Lösung jetzt aus? Ist für andere vielleicht auch mal interessant.

das hier:

$getreplies="SELECT *, DATE_FORMAT(FROM_UNIXTIME(realtime), '%d.%m.%Y - %H:%i') as 'realtime' FROM forumposts WHERE parentid='$id' ORDER BY postid DESC";
in Verbindung mit dem: