Hallo allemaal,
Ik heb een kalender waarop reserveringen aangegeven kunnen worden. De datum is groen als het nog niet gereserveerd is en rood als dat wel het geval is. Nu kan de beheerder datums invoegen die gereserveerd zijn, maar hij moet dan elke dag apart in vullen.
De datums komen dan in een database tabel te staan, en op de kalender vergelijk ik die datums en zorg ik dat ze in de juiste kleur weer gegeven worden.
Hoe kan ik er nu voor zorgen dat de beheerder een begin en een einddatum kan invullen en dat de dagen die daartussen zitten ook automatisch in de tabel komen te staan?
En dan zou het ook nog zo moeten zijn dat ik in de tabel een kolom heb waar de waarden 1, 2 en 3 ingevuld moeten worden. 1 voor de begin dag van een periode, 2 voor de dagen ertussen en 3 voor de eind dag van een periode.
Kijk eens hier naar: http://www.phphulp.nl/php/scripts/11/1585/
Door al die data op te halen krijg je gewoon alle datums (data) in je while.
Daarin JOIN je jouw gegevens.
Je kan dan per dag (want dat ga je toch wel doen) kijken wat er nog meer in die andere tabel (jouw gegevens) staan.
Je hoeft nu ook geen tussenliggende getallen datums uit te rekenen, want die komen uit de tabel alle_data.
Je kunt het ook nog met een PHP functie doen. $date1 moet hier wel kleiner zijn dan $date2, dus daar zit nog geen check op.
<?php
function date_range ($date1, $date2) {
list ($year1, $month1, $day1) = explode ('-', $date1);
list ($year2, $month2, $day2) = explode ('-', $date2);
if (!checkdate ($month1, $day1, $year1)) return false;
if (!checkdate ($month2, $day2, $year2)) return false;
Bedankt!
zou je misschien iets meer uitleg kunnen geven hoe dit werkt Jan?
Wanneer ik het uitprobeer is de array $dates leeg na het uitvoeren van de functie. strftime ('%Y-%m-%d', $i); gaat wel goed, want als ik dat binnen de forloop echo gaat het prima!
en echo count($dates); geeft 0...
EDIT//
Ik weet misschien waar het aan ligt. Ik roep de functie aan in een loop. Ik haal de begin en einddatums uit een database, doorloop de resultaten met een while loop, de eindatums zet ik in een array, en de begindatums ook, daarna roep ik binnen de loop de functie aan:
date_range($row['begindat'], $row['einddat']);
Ik moet de begin-, eind- en tussenliggende datums in een aparte array hebben, omdat de datum vakjes van deze verschillende datums allemaal een andere kleur moeten krijgen. Dat ziet er dan zo uit: