login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Komende dagen weergeven.

Offline Roosje - 25/10/2005 11:06 (laatste wijziging 25/10/2005 12:17)
Avatar van RoosjeNieuw lid Ik zou graag afspraken voor de komende zeven dagen willen weergeven. Zoiets als :

Dinsdag 25 oktober 2005
- Blabla
- Blablabla

Woensdag 26 oktober 2005
- Blabla


Dit is mijn query:

  1. $kalender = mysql_query("
  2. SELECT * ,
  3. DATE_FORMAT(datum, '%d-%m-%Y') AS datum
  4. WHERE
  5. datum >= NOW() AND
  6. datum <= DATE_ADD(NOW(), INTERVAL 7 DAY)
  7. ORDER BY
  8. titel ASC
  9. ") or die (mysql_error());


Ik heb al verschillende kalenders bestudeerd, maar ik kom er niet uit om enkel de komende zeven dagen te laten zien. Ik ben ook nergens anders een dergelijk scriptje tegengekomen.

6 antwoorden

Gesponsorde links
Offline Thomas - 25/10/2005 12:00
Avatar van Thomas Moderator Welk kolomtype heeft "datum"? Is dat een unixtime?
MySQL heeft ook functies om te kunnen rekenen met unixtimes.

Levert de bovenstaande query niet het gewenste resultaat op?
Offline Roosje - 25/10/2005 12:16
Avatar van Roosje Nieuw lid Type "date".

Het haalt wel de juiste gegevens op, maar het wordt niet weergegeven op de manier zoals ik het wil. Ik wil eigenlijk graag een kalendertje, maar dus enkel voor de komende zeven dagen.
En vervolgens moeten de gegevens uit de database daar dus worden ingepast.




Offline Thomas - 25/10/2005 13:12
Avatar van Thomas Moderator het handigste lijkt mij om alles eerst in een soort van arraytje te stoppen, zeg $kalender.

Elke index van $kalender vormt een dag van de week, en vormt tevens een nieuw array, waarin alle items van die dag hangen (die je met behulp van je database inleest).

Zoiets dus:

  1. // initialisatie
  2. $kalender = array();
  3.  
  4. for($i=0; $i < 7; $i++) {
  5. $kalender[$i] = array(); // $kalender[0] is vandaag, $kalender[1] is morgen etc.
  6. }
  7.  
  8. // vul hier $kalender met de gegevens uit je database
  9. // ...
  10.  
  11. // druk hier alle gegevens uit $kalender af
  12. for($i=0; $i < 7; $i++) {
  13. // druk een "dag-kopje" af
  14. echo "dag nummer ".$i."<br />";
  15.  
  16. // zijn er activiteiten gepland voor vandaag?
  17. if(!sizeof($kalender[$i])) {
  18. echo "geen activiteiten.<br />";
  19. } else {
  20. // er zijn activiteiten - druk deze allemaal af
  21. foreach($kalender[$i] as $activiteit) {
  22. // ...
  23. }
  24. }
  25. }


Zoiets.
Offline Roosje - 25/10/2005 17:29 (laatste wijziging 25/10/2005 17:30)
Avatar van Roosje Nieuw lid Ik heb een for-loop gemaakt en daar een mktime in geplaatst, waarvan de dag telkens met 1 wordt opgehoogd tot 6 (want 0 = vandaag).
In diezelfde loop heb ik de query gezet en bij WHERE aangegeven dat de gegevens van die betreffende dag moeten worden opgehaald. Dat gebeurt via een while-loop.
Ik heb ook nog de weergave van de data aangepast naar wens, naar zoiets als 'dinsdag 25 oktober 2005'.
Het werkt prima en ik ben er helemaal zelf opgekomen.  Ik ben trots op mezelf. 
Offline rambo - 25/10/2005 20:42
Avatar van rambo HTML beginner Wat overigens fout is aan deze query is dat je de naam 'datum' toewijst aan je nieuwe datum-formaat, waardoor MySQL dat ook bij de volgende regels wil gaan toepassen. Gebruik je echter dit:
  1. $kalender = mysql_query("
  2. SELECT * ,
  3. DATE_FORMAT(datum, '%d-%m-%Y') AS correctedatum
  4. WHERE
  5. datum >= NOW() AND
  6. datum <= NOW() + INTERVAL 7 DAY
  7. ORDER BY
  8. titel ASC
  9. ") or die (mysql_error());

Zul je (volgens mij) zien dat het wel werkt.
Offline Roosje - 25/10/2005 22:14
Avatar van Roosje Nieuw lid Ach ja, da's waar... maar ik heb het veld ook geen "datum" genoemd. Ik heb het even gebruikt ter verduidelijking.

Die query is overigens niet meer van toepassing.
Ik gebruik nu zoiets:
  1. $kalender = mysql_query("
  2. SELECT *
  3. FROM kalender
  4. WHERE
  5. datum = '".$jaar."-".$maand."-".$dag."'
  6. ") or die (mysql_error());
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s