login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Eerst komende agenda punt pakken

Offline Knbr - 15/01/2009 21:14
Avatar van KnbrNieuw lid Nou heb ik een agenda database met aar in optredens en nu wil ik op de home pagina de eerst volgende optreden weergeven. (dus niet de nieuwste)
dit had ik zelf eerst gemaakt (maar wist bijna zeker dat het niet werkte)
  1. <?php
  2. $dagnu = date(j);
  3. $maandnu = date (n);
  4. $jaarnu = date (Y);
  5. $res = mysql_query('SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= $dagnu, maand >= $maandnu, jaar >= $jaarnu');
  6. $arr = mysql_fetch_assoc($res);
  7. echo "<i>".$arr["dag"]."-".$arr["maand"]."-".$arr["jaar"]."</i><br /><br /><b>".$arr["plaats"].":</b><br />".$arr["info"]."";
  8. ?>


en inderderdaad het werkt niet  
nu weet ik niet of/hoe je in sql met een string/int kan vergelijken met iets uit het database?

nu de grote vraag:
Hoe moet het wel?

10 antwoorden

Gesponsorde links
Offline Stijn - 15/01/2009 21:53
Avatar van Stijn PHP expert ORDER BY komt ná WHERE clause.
Offline Knbr - 15/01/2009 22:08
Avatar van Knbr Nieuw lid Nee daar ligt het niet aan het ligt aan de vergelijkingen ik weet niet of dat wel zo mag in SQL moeten er speciale tekens om de variabelen?
Offline Richard - 15/01/2009 22:25
Avatar van Richard Crew algemeen Die verschillende velden voor dag, maand en jaar klinken als een bijzonder foute methode. Waarom niet gewoon een DATE(TIME) veld?
Offline Knbr - 15/01/2009 22:31
Avatar van Knbr Nieuw lid Omdat ik dat nog niet zo goed snapte
maar wat is er fout aan het werkt toch?

Ik weet alleen niet hoe je varabelen in MySQL gebruikt hier in deze regel dus:
SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= $dagnu, maand >= $maandnu, jaar >= $jaarnu
Offline Maarten - 16/01/2009 00:33 (laatste wijziging 16/01/2009 00:33)
Avatar van Maarten Erelid De manier is eigenlijk
  1. <?php
  2. mysql_query("SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= " . $dagnu . ", maand >= " . $maandnu . ", jaar >= " . $jaarnu);


Neemt uiteraard niet weg dat, zoals JeXuS reeds zei, dit totaal niet de manier is. Stop je gegevens in een DATETIME, en haal deze dan gewoon op met
  1. SELECT * FROM agendapunten WHERE datum > NOW() ORDER BY datum
. Lijkt me de helft gezelliger.
Offline henver - 16/01/2009 07:46
Avatar van henver HTML gevorderde Wat als het 29 maart is, en het volgend optreden is op 3 april. Hoe ga je het dan doen met die query?
Offline Martijn - 16/01/2009 11:01
Avatar van Martijn Crew PHP niets. Want dat is dan nogsteeds dat 3 april een grotere datum is dan NOW()
Offline Stijn - 16/01/2009 11:26
Avatar van Stijn PHP expert Je zou beter een DATE type nemen. Je gaat toch ook niet 10,0 schrijven als je 10 schrijft. Een probleem is dat dag>=$dag niet altijd gaat kloppen (idem voor maand).

30 april -> 1 mei (terwijl 1 mei groter is dan 30 april)

Met DATE kan je makkelijker gaan opzoeken.
Offline Knbr - 16/01/2009 13:13 (laatste wijziging 16/01/2009 21:21)
Avatar van Knbr Nieuw lid ok jullie hebben wel een punt ik ga ff kijken naar het DATE type hoe dat te werk gaat dan kom ik later misschien er nog op terug als ik nog vragen heb

EN daar was ik weer ik heb het allemaal omgezet naar DATE maar het lukt me nog niet 

  1. <?php
  2. $res = mysql_query('SELECT id, info, plaats, datum, DATE_FORMAT(datum, "%d-%m-%Y") AS datum2
  3. FROM agendapunten
  4. ORDER BY datum, ID
  5. ');
  6. $arr = mysql_fetch_assoc($res);
  7. echo "<i>".$arr["datum2"]."</i><br /><br /><b>".$arr["plaats"].":</b><br />".$arr["info"]."";
  8. ?>


Ik dacht zelf aan WHERE CURRENT_DATE()<=datum
maar als ik dat doe dan komt er gewoon niks de pagina laad wel en het tabeletje ook met alle "-" tekentjes alleen er komt geen datum, plaats en info. en dar heb ik overgens bij elke where ik snap niet hoe dat komt?

NU(met de code die ik gegeven heb) komt de oudste optreden(agendapunt): LINK
Offline henver - 16/01/2009 21:19
Avatar van henver HTML gevorderde @DeviourSoul: ik had het over de query in zijn beginpost 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.374s