Agenda met auto update
ik ben bezig met een site voor jongeren centrum waar ik werk. Nu zijn we beland aan de agenda, en willen het graag koppelen aan een DB zodat je het niet handmatig hoeft te updaten.
nu heb ik echter een vraag, hoe maak ik dit precies...
de gegevens ophalen uit de DB lukt me nog wel, en het posten van nieuwe data ook.
maar het echte probleem begint:
hoe leest hij de actuele datum (server) en zorgt ervoor dat data dat na deze komt (dus wat al geweest is) niet meer getoond wordt.
hoop dat iemand kan helpen
Groeten Pim
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$query = mysql_query("SELECT datum FROM tabelnaam");
$datum_dag = date(j);
if (datum_dag < $query) {
// record verwijderen of niet meer weergeven
}
else {
// weergeven
}
?>
$query = mysql_query("SELECT datum FROM tabelnaam");
$datum_dag = date(j);
if (datum_dag < $query) {
// record verwijderen of niet meer weergeven
}
else {
// weergeven
}
?>
De code is niet helemaal goed, maar het is een beginnetje hoe je het zou kunnen doen. Ik hoop dat je er wat aan hebt..!
ok dankjewel :D
Dan kun je die if/else constructie ook richting prullenbak sturen, dat maakt je script nog weer sneller.
Wanneer jij iets uit de database wilt hebben, dan vraag je alleen om die gegevens die je nodig hebt. Vervolgens vraag je ook de database om de boel op te maken zoals jij het hebben wilt en krijg je een kant en klaar antwoord van je database terug. Je hoeft dan in PHP vrijwel niets anders meer te doen dan een echo. Een database is meer dan alleen een bak met gegevens, ga je er eens in verdiepen.
En misschien is het beter om te gebruiken gelijkaan of groter dan.
Kortom:
SELECT * FRROM agenda WHERE datum >= NOW()
Offtopic:
Zie net: het is mijn 1000 ste post hier op dit forum!
@Tinus: Mooi antwoord. Maar weet jij toevallig een goede site waar dit soort dingen, die je dus direct in een query kan zetten, goed wordt uitgelegd? Ik zoek daar al een tijdje naar.
Webmakerij:
Zie net: het is mijn 1000 ste post hier op dit forum!
Ja, we worden allemaal oud. (geintje) ;-)
Gefeliciteerd Webmakerij, en dat je nog maar vaak mag posten.
http://dev.mysql.com/doc/refman/5.0/en/index.html
Verder kun je op www.sqlcourse.com een online cursus sql doen.
Bedenk verder dat wanneer jij vergelijkingen in PHP gaat doen met gegevens die uit de database komen, je vrijwel altijd 'verkeerd' bezig bent. Een database is zoveel sneller dan een programmeertaal.
Zoek op de site van MySQL eens op 'date calculations' of 'date functions', dan krijg je een idee wat je allemaal met een datum (DATE of DATETIME) kunt doen.
@SanThe: Een query is niets anders dan een vraag. Wanneer jij een slimme vraag stelt, krijg je een slim antwoord terug. (Alleen vragen om de dingen die je nodig hebt) Wanneer je gebruik maakt van MySQL, bookmark dan de volgende url: Verder kun je op www.sqlcourse.com een online cursus sql doen.
Bedenk verder dat wanneer jij vergelijkingen in PHP gaat doen met gegevens die uit de database komen, je vrijwel altijd 'verkeerd' bezig bent. Een database is zoveel sneller dan een programmeertaal.
Zoek op de site van MySQL eens op 'date calculations' of 'date functions', dan krijg je een idee wat je allemaal met een datum (DATE of DATETIME) kunt doen.
@Tinus: Bedankt voor de tips.
@ Tinus: ik neem aan dat je spreekt vanuit ervaring, maar heb je toevallig ook een link naar een testpagina, of heb je benchmark-gegevens? Ik zou graag willen weten hoeveel het verschil precies is.
Jan:
Hoi SanThe! Ik ben er weer. Ik heb een leuke download voor je: Een PDF met MySql datum en tijd functies.
Welkom terug Jan.
Bedankt voor de link. Ik heb de hele file maar even gedownload, en ik zal het eens aandachtig gaan bekijken.
de belangrijkste staan daar wel in, volgens mij. En ik ben erg nieuwsgierig naar de onderbouwing van Tinus, want hoe sneller de queries, hoe beter :-)
Misschien tog maar slomer dan moeilijker ^^
Han:
Misschien tog maar slomer dan moeilijker ^^
Nou, dat *kan* een overweging zijn, soms. Als je weet dat een database niet heel groot wordt en dat je queries er eenvoudiger van worden EN dat het snelheidsverschil niet groot is, bijvoorbeeld.
Haal de gegevens op (SELECT) waarvan de datum later of gelijk is aan (>=) nu ( NOW() )..
Wat ik me nu wel afvraag is of het nog uitmaakt hoe je je datum hebt op geslagen DATE of TIME of TIMESTAMP...
Gewijzigd op 27/10/2005 14:48:00 door Willem Jan Z
@Jan: Ik heb geen url's bij de hand, via Google kun je heel veel informatie over dit onderwerp vinden. Richt je dan even niet op MySQL maar op bijvoorbeeld Oracle of DB2. Dit zijn systemen die worden gebruikt voor echt grote databases. MySQL wordt over het algemeen toch gebruikt voor kleinere systemen waar de performanceverschillen niet zo belangrijk zijn.
Maar Oracle is ook duur(tot 50.000 euri's), ook dat is een van de redenen om MySQL te gebruiken!