2016-10-30 3 views
0

Ich habe lokalen MAMP-Server mit phpmyadmin mit drei Tabellen, Benutzer, Buchung und Zimmer. Bei der Tischreservierung habe ich etwas wie Buchung von Buchung zu Spalten, die Buchungszeit darstellt. In Zimmertabellen habe ich auch sowas wie gebucht, was meistens zeitabhängig ist.Autoupdate jeden Tag auf Datenbank

Ich möchte etwas in meinem phpmyadmin machen, dass sich jeden Tag die Datenbank aktualisiert und überprüft, ob das Zimmer belegt ist und ob das bookingTo-Datum vor dem Tag liegt, an dem die Datenbank aktuell isBooked von true ist falsch.

Mein Ziel ist es nicht das fertige Skript zu bekommen, aber so, wie es oder irgendwelche nützlichen Links, so lange zu tun, wie es für Schulprojekt meine Ausbildung Website ist :)

Antwort

1

Es könnte möglich sein, dies zu tun in die Datenbank direkt, mir ist keine Methode bekannt, die dies tut, aber ich bin mir sicher, dass es möglich ist (vielleicht nicht in MySQL, aber in einigen Db-Engine). Kannst du aber nicht einfach zu Beginn des Tages (oder wann immer) eine PHP-Ausführung einer UPDATE-Abfrage machen oder einfach zu einer bestimmten Zeit (eine halbe Stunde nach dem Auschecken) ein Cron-Skript ausführen? so etwas) und lassen Sie das "Enddatum" in der Datenbank überprüfen, und wenn es vor dem aktuellen Datum/Uhrzeit ist, ändern Sie den "belegten" -Status?

2

können Sie nicht so denken mit phpmyadmin. Sie können mysql scheduler ausprobieren, wenn Ihre Version dies unterstützt.

So etwas sollte funktionieren ...

CREATE EVENT myevent 
    ON SCHEDULE EVERY 1 DAY 
    DO 
     CALL check_book_status(); 

Bitte vergessen Sie nicht check_book_status Funktion zu erstellen, die Feld-Updates, die Sie benötigen.

Auch hier weitere Informationen ...

http://dev.mysql.com/doc/refman/5.7/en/create-event.html

1

Sie können es ohne Update-Status. Berechnen Sie den Status, wenn Sie diese Information anzeigen:

SELECT 
     IF(NOW() > bookingFrom AND NOW() < bookingTo, 1, 0) AS isBooked 
     /* other fields */ 
    FROM booking 
    ...