Hi Giz,
ich spreche von den Zeilen in einer Tabelle einer Datenbank (DB != Deutsche Bahn). Wenn Kunden online buchen, wird das als ein Datensatz (eine Zeile) neu eingetragen. Also weiß ich (bzw. PHP) nicht, wieviel Zeilen vorhanden sind, aber das kann man ja auslesen.
Es gibt eine Spalte mit Anreise- und eine Spalte mit Abreisedatum - Zeiträume, in denen die Wohnung also schon belegt ist. Wenn jetzt ein neuer Kunde buchen will und sein An- und Abreisedatum eingibt, soll geprüft werden, ob dieser Zeitraum nicht schon belegt ist. Also muss die Abfrage Zeile für Zeile der DB-Tabelle durchgehen.
Ich hab's inzwischen gelöst. So funktioniert es:
PHP-Code:
$verbindung = mysql_connect ($servername, $benutzer, $passwort);
mysql_select_db ($datenbank);
$bel = mysql_query ("SELECT anr, abr FROM $tabellenname");
//$anz_zeilen = mysql_num_rows($bel); // das war nur zur Kontrolle
// echo "Es gibt $anz_zeilen Zeile(n)<p>"; // das war nur zur Kontrolle
while ($zeile = mysql_fetch_object($bel)) {
// echo "gesp. Anreise: $zeile->anr<p>"; // das war nur zur Kontrolle
// echo "gesp. Abreise: $zeile->abr<p>"; // das war nur zur Kontrolle
if ((($anr > $zeile->anr) && ($anr < $zeile->abr)) or (($abr > $zeile->anr) && ($abr < $zeile->abr)) or (($anr < $zeile->anr) && ($abr > $zeile->abr))) {
echo "<b style='color: #FF0000;'>In diesem Zeitraum gibt es schon belegte Tage. Bitte schauen Sie in den Belegungsplan.</b><p>";
exit();
}
}
mysql_close ($verbindung);
Das geht jede Zeile durch und prüft, ob die neue gewünschte Belegung mit einer schon (in der DB) bestehenden kollidiert. Deshalb sieht die if-Abfrage auch bisserl wild aus.
Übrigens: Das war das, was ich kürzlich mit meinen csv-Dateien und arrays hinkriegen wollte. Ist richtig komfortabel so'ne Datenbank. Und ich bin überrascht, wie einfach das geht - ist gerade mein erster Versuch gewesen.
Gruß
Heinrich