Es wird nur 1 Ergebnis ausgegeben

kaeZe

Grünschnabel
Hallo,
ich habe folgendes Problem. Ich habe einen mySQL Code, welcher 3 Tabellenspalten auswählt. Wenn ich den Code in der Datenbank ausführe, werden mir auch alle Ergebnisse angezeigt. Wenn ich jetzt aber mit PHP den Code ausführe, erhalte ich immer nur das letzte Ergebnis. Wie kann ich alle Einträge der Datenbank anzeigen lassen?

PHP:
$qry = mysql_query('SELECT name, comment, datum FROM bdmcomment ORDER BY datum DESC');

und dann weiter unten zum Ausgeben:

PHP:
echo "<div class=\"name\">\n";
echo $row['name'];
echo "</div>\n";
usw.

Und meine 2. Frage wäre, wie ich das Datum so formatieren könnte, dass ich nicht das Standart Format der Datenbank erhalte, sondern z.B. dd.mm.yy mit dem SQL-Befehl date_format habe ich es nicht hinbekommen.

MFG
 
PHP:
while(($row = mysql_fetch_array($qry)) !== false){
echo "<div class=\"name\">\n";
echo $row['name'];
echo "</div>\n";  
}

Wie sieht das Format in der DB aus? Probiers mal mit [phpf]strtotime[/phpf] und dann den Timestamp mit [phpf]date[/phpf] formatieren...
 
Danke, das 1. geht schon mal.

Zu 2.
Das sieht z.B. so aus:
2006-05-29 13:34:58

Mit strtotime() funktioniert es nicht.
Wenn ich date nehme, kommt dasselbe Ergebnis wie oben. Weiß aber nicht, ob ich es richtig gemacht habe?
PHP:
echo date($row['datum'], "dd.mm.yy");
 
PHP:
<?php
function dbDateToStr($d){
  list($date, $hour) = explode(' ', $d); // Trennen nach dem Leerzeichen in Datum und Uhrzeit
  list($year, $month, $day) = explode('-', $date); // Trennen des Datums in Tag, Monat, Jahr, nach -
  list($h, $m, $s) = explode(':', $hour); // Trennen der Uhrzeit in Sek, Minuten und Stunden, nach :
  
  return mktime($h, $m, $s, $month, $day, $year); // Mittels mktime() in ein UNIX-Timestamp umformen
}

$timestamp = dbDateToStr($row['datum']); // Datum in Timestamp mit obiger Funktion
echo date('d.m.Y', $timestamp); // Datum wie gewohnt formatieren mit date()
?>

Nachtrag
Folgender Code Funtioniert bestens bei mir. Nimm lieber [phpf]strtotime[/phpf]. Dein Problem ist/war, dass du erst die Formatierung, dann den Timestamp bei der [phpf]date[/phpf] Funktion angeben musst (Blick ins Manual genügt).
PHP:
<?php
$stamp = strtotime('2006-05-29 13:34:58');
echo date('d.m.Y H:i:s', $stamp);
?>
 
Zuletzt bearbeitet:
Zurück