MySQL Abfrage mit If Bedingung

djnelly

Erfahrenes Mitglied
Hallo..

ich habe folgende SQL-Abfrage:

select * from admin_termine where termin_datum_bis > $DatumHeute and (termin_datum_von >= '$Year-$MonatZahl-00' and termin_datum_von <= '$Year-$MonatZahl-31')

Ziel ist es, alle Termine eines Monats auszugeben, die aber noch nicht vergangen sind. Leider klappt die Abfrage so nicht...

Was mache ich falsch?

Danke
 
Hi ich weiß nicht ganz was dein ganzes Konstrukt bedeuten soll, jedoch würde ich nach deiner Aussage darauf schlissen das du dieses hier möchtest.

Code:
select *
from `admin_termine`
where `termin_datum_von` >= '2008-12-23'
and `termin_datum_von` <= '2008-12-31'

Das 2008 und 12 musste natürlich durch das aktuelle ersetzen per PHP Var und das 23 durch den aktuellen Tag.

termin_datum_bis wusste ich nicht, oder meinst du gar keinen Termin, sondern eine Zeitspanne. Termin sind aber nach Definition etwas anderes(Zeitpunkt).
Dann schreib bitte nochmal, werde es dann erweitern, bin nur gerade zu faul zum nachdenken, da ich die letzen Tage kaum geschlafen habe und mir ja nichts sicher bin, was du wirklich möchtest.
 
Als erstes würde ich empfehlen, die Anfangs- und Enddaten außerhalb der sql Anweisung zusammenzubauen. Das macht es sehr viel übersichtlicher. Außerdem sollltest du die Werte IMMER in Hochkomma stellen, da es zu einem Abbruch führt, wenn da mal kein Wert drin steht oder der Wert nicht numerisch ist.
termin_datum_bis würde ich auf >= abfragen, da sonst heutige Termine nicht gefunden werden.
Ansonsten kann die Abfrage aber auch nur funktionieren, wenn ein Termin nicht über einen Monatswechsel geht. Da du aber wohl einfach nur die Termine haben willst, in deren Zeitspanne der aktuelle Tag liegt, kannst du das sowieso erheblich vereinfachen.
PHP:
$sql = "select * from admin_termine 
      where termin_datum_bis >= '$DatumHeute' 
      and termin_datum_von <= '$DatumHeute';";
 
Zuletzt bearbeitet:
Zurück