[MYSQL] Abfrage eines Wochenzeitraums

shockwaveXBG

Grünschnabel
Hallo,

Ich habe folgendes Problem: Meine Abfrage gibt zwar keine Fehlermeldung aus, aber ich bekomme auch keinerlei Daten angezeigt. Die Abfrage sollte alle Einträge der vergangenen Woche anzeigen - also vom aktuellen Tag an zurueck um 7 Tage - wo liegt da der Fehler?

PHP:
 $jetzt = "NOW()";
  $vorher = "NOW() - interval 7 DAY)";
  
  $sql="SELECT aktion_tr,name_tr,wkn_tr,anzahl_tr,kurs_tr,DATE_FORMAT(datum_tr,'%d-%m-%Y')AS datum_tr,zeit_tr,kommentar FROM transaktion WHERE 
  1 AND datum_tr >= '" . $jetzt . "' AND datum_tr <= '" . $vorher . "'";
 
Hallo!

Zuerst einmal 2 Dinge:
1.: NOW() gehört zum SELECT, nicht in die WHERE Klausel (Bsp.: SELECT NOW()).
2.: NOW() liefert folgendes Format YYYY-MM-TT HH:MM:SS.
Also wenn Du das Format so haben willst, wie NOW() es liefert, dann mach doch folgendes:
PHP:
$jetzt = date("Y-m-d H:i:s");
$vorher = date("Y-m-d H:i:s", strtotime("-1 week"));
$sql="SELECT aktion_tr,name_tr,wkn_tr,anzahl_tr,kurs_tr,DATE_FORMAT(datum_tr,'%d-%m-%Y')AS datum_tr,zeit_tr,kommentar FROM transaktion WHERE 1 AND datum_tr >= '" . $jetzt . "' AND datum_tr <= '" . $vorher . "'";
Wenn Du allerdings nur das Datum haben willst (YYYY-MM-TT), dann lass einfach das "H:i:s" weg!

redlama
 
Bei NOW() handelt es sich um eine mySQL-Funktion und darf nicht in einfachen Anführungszeichen stehen.
Und bei $vorher = "NOW() - interval 7 DAY)"; wird eine Klammer geschlossen, die vorher nicht geöffnet wird.
Außerdem hast du dich mit den <= und >= vertan. Nach deiner Abfrage soll das Datum später (also >=) jetzt sein, aber früher (<=) dem Datum vor einer Woche. Das wird dir nie einen Datensatz liefern.
 
Zurück