[PHP] Event sort by date

  • Beste lezer,


    Ik heb een script die verschillende evenementen uit de database haalt en deze sorteert per datum. Echter zijn er een aantal conditie's aan deze SQL Query gebonden. Het evenement moet al geweest zijn (Event.start > NOW()) dan komen mooi alle evenementen die er aan komen weergeven. Nu moeten ze gesorteerd worden op datum. Sommige van deze evenementen zijn wekelijks. Dus de datum ziet er dan veel anders uit dan de andere. Zo zien de gegevens eruit:


    Code
    Event.id | Event.start | Event.stop | Event.weekly | Event.week
    1 | 0000-00-00 22:00:00 | 0000-00-00 03:00:00 | 1 | 4
    2 | 2015-03-03 18:00:00 | 2015-04-03 06:00:00 | 0 | 0


    Nu moet de SQL Query alle evenementen sorteren op datum. Hierbij moeten de wekelijks evenementen ook te voorschijn komen (ookal zijn de TIMESTAMPs van de Event.start row in het verleden). Event.weekly == 1 als het evenment weeklijks is en Event.week staat voor welke dag van de week het evenement is.


    Weet iemand een SQL conditie die deze evenementen allemaal kan sorteren op datum dus dat in dit geval ID 1 er tussen komt op donderdag aanstaande om 22:00 uur?


    Ik hoop dat de uitleg niet te onduidelijk is!

  • Guest, wil je besparen op je domeinnamen? (ad)
  • In deze opzet is het wss niet duidelijk wanneer een herhalend event plaatsvindt.


    Een alternatief is wellicht het volgende: maak een tweede tabel recurring_events oid, en zet daarin een start- en einddatum en een interval in tijd (maak je het ook nog flexibeler dan enkel wekelijks). Als je zo'n terugkerend event vervolgens wegschrijft wordt berekend wanneer dit event plaatsvindt en deze events worden dan weggeschreven als "gewone" events in de eventtabel. Of je maakt een crontab die dat voor de komende week / maand uitrekent ofzo.


    Vervolgens kun je alle events op dezelfde manier behandelen en voorkom je de rare spagaat waarin je je nu bevindt.

  • Ik heb het er niet bij gezegd maar het is niet mogelijk om iets te wijzigen aan de database (en tabel rijen). De code is door niet door mij geschreven/gemaakt en is volledige in het CakePHP framework. Ik heb het al bijna opgelost d.m.v. een functie.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!