Werte mit Mysql vergleichen

ASchwiedy

Mitglied
Hallo Allerseits,

ich habe ein Problem.
Es exisitiert eine mysql-Tabelle mit zwei Spalten:
von und bis jeweils im DATE-Format und enthalten Datum im Format YYYY-MM-DD.
z.B.
von
2012-11-08
bis
2012-11-12

Wenn über ein Formular ein Datum übergeben wird, kann ich problemlos mittels BETWEEN prüfen, ob dieses Datum in den Zeitraum des mysql-Eintrages fällt.

Doch jetzt das Schwierige (für mich):
Über das Formular werden nicht nur eines sondern 2 Datum übergeben (also auch von und bis). Jetzt muß ich überprüfen ob der Zeitraum, welcher über das Formular übergeben wird evtl. eben schon besetzt ist anhand der mysql-einträge. Dabei existieren in der mysql-Tabelle mehrere Einträge (also z.B. von 2012-11-08 bis 2012-11-12 | von 2012-11-02 bis 2012-11-15 usw.).

Ich gehe also davon aus, dass wenn man über das Formular zwei Datum sendet, man erst mal rausfinden muß welche Datum dazwischen iegen und dieses dann mit der Datenbank abgleicht oder wie?

Danke bereits im Vorraus für die Antwort!

Andi
 
Soll nur auf exakte Übereinstimmung geprüft werden oder soll geprüft werden ob das eingegebene Datum sich mit einem bereits vorhandenen Termin überschneidet?
 
hi,

also in der mysql lieben zeiträume (von/bis).
Jetzt kann man über ein Formular ein Event buchen und dabei ein Start-und Enddatum wählen. Es soll überprüft werden, ob ein vom User gewünschter Zeitraum überhaupt möglich ist.
z.B. ist in der DB ein Eintrag:
von 2012-11-08
bis 2012-11-12

der User möchte ein Event z.B. vom 2012-11-05 bis 2012-11-09 ODER auch von 2012-11-07 bis 2012-11-15. Es soll geprüft weden: Ist hier eine Reservierung möglich?
 
Das sollte so gehen:

SQL:
SELECT * FROM tabelle WHERE '2012-11-05' BETWEEN von AND bis OR '2012-11-09' BETWEEN von AND bis

Wenn die Abfrage ein Ergebnis leifert, dann gibt es eine Terminüberschneidung.
 
habe das nämlich jetzt so probiert

$a=mysql_query("SELECT * FROM tabelle WHERE '$mydatevon' BETWEEN von AND bis OR '$mydatebis' BETWEEN von AND bis");

while ($b=mysql_fetch_array($a)) {
$test=$b['von'];
if ($test == "") {
echo ("geht");
} else {
echo ("geht nicht");
}
}

die Variablen $mydatevon und $mydatebis sind die die vom Formular kommen.

Allerdings geht das so nicht
 
Ändere das

PHP:
$a=mysql_query("SELECT * FROM tabelle WHERE '$mydatevon' BETWEEN von AND bis OR '$mydatebis' BETWEEN von AND bis");

mal so ab

PHP:
$sql = "SELECT * FROM tabelle WHERE '$mydatevon' BETWEEN von AND bis OR '$mydatebis' BETWEEN von AND bis";
echo $sql;
$a = mysql_query($sql);

Dann siehst du wie der SQL-String aussieht und wir wissen woran es liegt.

Ich hoffe natürlich das du hier zwar "tabelle" schreibst in Wirklichkeit aber der Name deiner Tabelle angegeben ist!!
 

Neue Beiträge

Zurück