Terminabfrage


isaack

Mitglied
hallo,

ich komme gerade nicht so wirklich auf den trichter und benötige mal hilfe.
ich möchte bei mir auf der seite eine terminvergabe gestalten.

folgendes soll dort passieren.

User sollen sich ein Produkt (Informationsgespräch) buchen können. In der datenbank habe ich die termine mit timestamp von und timestamp bis stehen. allerdings nur die gebuchten termine.
wenn jetzt ein anderer user kommt und auch einen termin an diesem tag haben will, soll mit der abfrage geprüft werden, wo er rein passt. die Produkte haben alle unterschiedliche zeiten, wie lange es geht.

ich hoffe ich konnte mich deutlich ausrücken und man konnte mich verstehen.

ich danke schon mal im vorraus für die hilfe.
 

isaack

Mitglied
würde es gern per mysql lösen wollen.
habe dazu folgenden ansatz bis jetzt:

PHP:
"SELECT id FROM ". PREFIX . TERMIN ." WHERE
                                                                   (von <= '$zeit_von' AND bis >= '$zeit_von') OR
                                                                   (von <= '$zeit_bis' AND bis >= '$zeit_bis') OR
                                                                   (von >= '$zeit_von' AND von <= '$zeit_bis') OR
                                                                   (bis >= '$zeit_von' AND bis <= '$zeit_bis')
                                                                   "
allerdings bringt er mir so immer keine einträge. ich möchte ja prüfen ob da noch was geht in der zeit und mysqli_num_rows soll bei nicht passen != 0 ausgeben.
 

Yaslaw

n/a
Moderator
Hast du die Lösung in meinem Link mal angeschaut?

Mein Beispiel im Link ein wenig umgesetzt.
Annahme. Die Felder von und bis sind Datumsfelder, $zeit_von und $zeit_bis sind Unixtimestamps (PHP-Datum/Zeit)
Wenn dias SQL ein Wert ausgibt, gibt es eine Überschneidung
SQL:
SELECT id
FROM $table
WHERE LEAST(bis, FROM_UNIXTIME($zeit_bis)) >= GREATEST(von,FROM_UNIXTIME($eit_von))
 

isaack

Mitglied
ich danke dir für deine hilfe.
habe jetzt den fehler gefunden, warum es nicht funktioniert hat. das problem lag daran, das js ein falsches datum bekommen hat und das weiter geleitet hat.
werde mir aber deine methode zu gemüte führen und für weitere abfragen mit behalten.
danke noch einmal :)