Planbord maken in PHP
Ik bezig om online software te maken. De software ontwikkel ik voor campings, en moet alle boekingen in het systeem zetten. Alle boekingen worden in eerste instantie handmatig in het systeem gezet. Nu weet ik wel hoe je een datum in de database opslaat, alleen niet hoe je dit per dag doet.
Er moet namelijk per standplaats een rij komen in een weer te geven table, die rood wordt als er gebookt is.
Nu wil ik het liefste hier ook nog een <a href> aan hangen, zodat je naar de booking doorgaat als er gebookt is.
Een voorbeeldje van hoe dit er uit ziet: http://www.uwboeking.com/images/Planbord.jpg
Kan iemand dit voor mij maken/helpen?
Alvast bedankt!
Persoonlijk zou ik de reserveringen met een start datetime en eind datetime in een tabel plaatsen.
Mogelijk ziet je tabel er zo uit:
-id
-start
-eind
-plaats_nr
-klant_id
Wanneer je je planboord op het scherm wilt toveren laat deze altijd een bepaalde periode zien. Die van jou laat de periode van één maand zien. Om precies te zijn: November 2013. Laten we deze maand als voorbeeld pakken.
Je kunt dus beginnen je query zo op te stellen dat je alleen die reserveringen er uit pakt die:
- beginnen VOOR het EINDE van de maand (kleiner dan 1-12-2013)
EN
- eindigen NA het BEGIN van de maand (groter dan of gelijk aan 1-11-2013)
Indien je slechts bijvoorbeeld alleen data wilt laten zien van één klant of één plaatsnummer dan kun je daar ook op filteren uiteraard.
Alleen zo krijg je alle reserveringen die gedeeltelijk of helemaal in de maand november 2013 vallen.
De rijen uit de $result stop je wederom in een array zodat je een twee dimensionale array krijgt.
Zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dan ga je je overzicht maken. Ik stel me zo voor dat je bij 1 nov 2013 begint en daarna 2 nov 2013 en zo door tot 30 nov 2013.
Voor iedere dag loop je dan door de resultaten. valt de dag tussen de start en eind datum dan een record dan
moet je deze een als bezet bestempelen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Sorry geen tijd om het helemaal voor je uit te schrijven, hoop dat je er zo mee verder kan
Gewijzigd op 18/05/2015 18:44:40 door Frank Nietbelangrijk
Dank je wel!
Tim
DateTime() moet afgeraden worden voor kalenderapplicaties, het is namelijk supertraag. Datumberekeningen kun je beter door een database laten afhandelen, dat scheelt een factor 1000 in snelheid. Dat is zeker merkbaar als je het ook op een Synology NAS oid wilt laten draaien. DateTime() wil je dan echt alleen maar voor enkele ad-hoc berekeningen gebruiken, NIET in een lus!