Datum zoeken adhv week of maand
Mogelijke zoekopties
Deze week
Volgende week
Volgende 2 weken
Deze maand
Volgende maand
Volgende 2 maanden
Deze week / Deze maand / Volgende Week lukt al ! (zie onderstaande code)
Toch lukt "Volgende 2 weken" niet !
Iemand een idee waarom ?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if($_GET['t'] == '0') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW()) "; //deze week
if($_GET['t'] == '3') $query_rsConcert .= "AND MONTH(Datum) = MONTH(NOW()) "; //deze maand
if($_GET['t'] == '1') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW(),1) "; //volgende week
if($_GET['t'] == '2') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW(),2) "; //volgende 2 weken
?>
if($_GET['t'] == '0') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW()) "; //deze week
if($_GET['t'] == '3') $query_rsConcert .= "AND MONTH(Datum) = MONTH(NOW()) "; //deze maand
if($_GET['t'] == '1') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW(),1) "; //volgende week
if($_GET['t'] == '2') $query_rsConcert .= "AND WEEK(Datum) = WEEK(NOW(),2) "; //volgende 2 weken
?>
Gewijzigd op 01/01/1970 01:00:00 door DeZond
Edit:
Laat maar, kan allebij, maar denk dat DATE_ADD wel iets handiger werken is hier. Welke is eigenlijk sneller?
Laat maar, kan allebij, maar denk dat DATE_ADD wel iets handiger werken is hier. Welke is eigenlijk sneller?
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Dus daar moet ik vanaf stappen.
Ik heb zowel DATE_DIFF als DATE_ADD gegoogled tot en met; alle forums.
Heb dit hieronder gevonden, maar faalt steeds.
Vraag me af of je met deze functies wel een week of maand kan specifieren; of 7 dagen; 30 dagen.
Code (php)
1
2
3
2
3
<?php
if($_GET['t'] == '0') $query_rsConcert .= "AND Datum = DATE_ADD (NOW(), INTERVAL 1 WEEK) "; //deze week
?>
if($_GET['t'] == '0') $query_rsConcert .= "AND Datum = DATE_ADD (NOW(), INTERVAL 1 WEEK) "; //deze week
?>
of
Code (php)
1
2
3
2
3
<?php
if($_GET['t'] == '0') $query_rsConcert .= "AND DATE_ADD(`Datum`, INTERVAL 7 DAYS) > NOW(); //deze week
?>
if($_GET['t'] == '0') $query_rsConcert .= "AND DATE_ADD(`Datum`, INTERVAL 7 DAYS) > NOW(); //deze week
?>
Quote:
De eerste dag van de week is de zondag. Wanneer jij wilt kijken wat er van maandag t/m zondag allemaal te doen is, dan zul je dus de huidige week minus zondag + de volgende week minus alle_dagen_behalve_zondag moeten nemen.de functie WEEK klopt in dit gebruik niet helemaal. Bij de keuze "Deze Week" presenteerde hij niet de evenementen op zondag.
En backtics ` in je query verbrand je even, die heb je alleen `nodig` om fouten te verbergen. Totdat je ze vergeet en jij jouw data kwijt raakt... Dan heb je een backup nodig ;)
Edit: Vergeet niet om naar de week-mode te kijken, dan kun je ook instellen dat maandag de eerste dag van de week is. Precies wat jij nodig hebt!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Misschien is DATE_DIFF en DATE_ADD een betere oplossing, maar dat lukt me momenteel ook niet.
Weet eigenlijk niet meer in welke richting te zoeken.
Heeft er iemand een paar goede links of tips ?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
#Deze week
WHERE WEEK(datumveld) = WEEK(NOW())
#Volgende week (zo - za)
WHERE WEEK(datumveld) = WEEK(DATE_ADD(NOW(), INTERVAL 1 WEEK))
#Komende week (volgende 7 dagen)
WHERE datumveld BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 WEEK))
WHERE WEEK(datumveld) = WEEK(NOW())
#Volgende week (zo - za)
WHERE WEEK(datumveld) = WEEK(DATE_ADD(NOW(), INTERVAL 1 WEEK))
#Komende week (volgende 7 dagen)
WHERE datumveld BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 WEEK))
De link:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
ps. Zelfde principe kun je natuurlijk toepassen voor de maanden...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
De echo van de query geeft dit weer:
Code (php)
1
WHERE Datum BETWEEN NOW() AND DATE_ADD(NOW(),INTERVAL 1 WEEK)) ORDER BY Plaats ASC, Datum ASCYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WEEK)) ORDER BY Plaats ASC, Datum ASC' at line 2
Wat doe ik verkeerd ? Datum is opgeslagen als YYYY-DD-MM
Code (php)
EDIT: ik heb ook nog volgende instelling op pagina. Maar denk dat dit geen invloed heeft. Heb al eens weggedaan en probleem bleef.
Zit dan nog met week tot zondag. Zou een instelling zijn; ik kan enkel het bericht vinden omtrent die ISO norm: %W
pgFrank schreef op 30.10.2007 11:18:
Quote:
Vergeet niet om naar de week-mode te kijken, dan kun je ook instellen dat maandag de eerste dag van de week is. Precies wat jij nodig hebt!
Gewijzigd op 01/01/1970 01:00:00 door DeZond
Wat is de complete query die je gebruikt hebt?
Code (php)
1
SELECT p.Plaats, c.IDArtiest, c.Datum, g.Genre, t.Taal, a.Naam, a.Myspace FROM tblPlaats AS p LEFT JOIN tblConcert AS c ON p.IDPlaats = c.IDPlaats LEFT JOIN tblArtiest AS a ON a.IDArtiest = c.IDArtiest LEFT JOIN tblGenre AS g ON g.IDGenre = a.IDGenre LEFT JOIN tblTaal AS t ON t.IDTaal = a.IDTaal WHERE WEEK(Datum) = WEEK(DATE_ADD(NOW(),INTERVAL 1 WEEK)) ORDER BY Plaats ASC, Datum ASC
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WEEK)) ORDER BY Plaats ASC, Datum ASC' at line 2
Edit:
Zo zie je ook de error die er achter staat.
Wordt zo al een stuk duidelijker.
SanThe.
Zo zie je ook de error die er achter staat.
Wordt zo al een stuk duidelijker.
SanThe.
Gewijzigd op 01/01/1970 01:00:00 door DeZond
Maak van 1 WEEK eens 7 DAY. De interval WEEK is pas sinds versie 5 beschikbaar.
Vreemd, het zou volgens mij gewoon moeten werken. Wat gebeurt er als je 'INTERVAL 1 WEEK' vervangt door 'INTERVAL 7 DAY'?
Blanche schreef op 30.10.2007 15:07:
Vreemd, het zou volgens mij gewoon moeten werken. Wat gebeurt er als je 'INTERVAL 1 WEEK' vervangt door 'INTERVAL 7 DAY'?
Lijkt mij hetzelfde. Alleen zoals pgFrank al zei is WEEK pas in versie 5 beschikbaar.
Hmm, dat zal het probleem zijn :S
Merci; Het werkt nu zowel voor de weken als de maanden; ik zal de code hieronder plaatsen:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if($_GET['t'] == '0') $query_rsConcert .= "WEEK(Datum) = WEEK(NOW()) ";
if($_GET['t'] == '3') $query_rsConcert .= "MONTH(Datum) = MONTH(NOW()) ";
if($_GET['t'] == '1') $query_rsConcert .= "WEEK(Datum) = WEEK(DATE_ADD(NOW(),INTERVAL 7 DAY)) ";
if($_GET['t'] == '2') $query_rsConcert .= "WEEK(Datum) = WEEK(DATE_ADD(NOW(),INTERVAL 14 DAY)) ";
if($_GET['t'] == '4') $query_rsConcert .= "MONTH(Datum) = MONTH(DATE_ADD(NOW(),INTERVAL 1 MONTH)) ";
if($_GET['t'] == '5') $query_rsConcert .= "MONTH(Datum) = MONTH(DATE_ADD(NOW(),INTERVAL 2 MONTH)) ";
?>
if($_GET['t'] == '0') $query_rsConcert .= "WEEK(Datum) = WEEK(NOW()) ";
if($_GET['t'] == '3') $query_rsConcert .= "MONTH(Datum) = MONTH(NOW()) ";
if($_GET['t'] == '1') $query_rsConcert .= "WEEK(Datum) = WEEK(DATE_ADD(NOW(),INTERVAL 7 DAY)) ";
if($_GET['t'] == '2') $query_rsConcert .= "WEEK(Datum) = WEEK(DATE_ADD(NOW(),INTERVAL 14 DAY)) ";
if($_GET['t'] == '4') $query_rsConcert .= "MONTH(Datum) = MONTH(DATE_ADD(NOW(),INTERVAL 1 MONTH)) ";
if($_GET['t'] == '5') $query_rsConcert .= "MONTH(Datum) = MONTH(DATE_ADD(NOW(),INTERVAL 2 MONTH)) ";
?>
Natuurlijk zit ik nog met de kl*te-zondag. Alee; welke alien geeft zijn weekstart op een zondag. :-) . Dat ga ik zelf eens uitchecken: kvermoed dat het met DATE_FORMAT moet lukken. Hoop ik :-)
DeZond schreef op 30.10.2007 15:24:
Ouwe zooi !? Via m'n cpanel lees ik PHP version 5.2.3 !
En MySQL?
Idd Ouwe zooi from Belgium :-)
DATE_FORMAT gaat je daarbij echt niet helpen, dat gaat alleen over opmaak.
5 Monday 0-53 with a Monday in this year.
Bedankt voor jullie hulp !