mysql query volgende week
Daarvoor had ik die cronjob(http://www.phphulp.nl/forum/showtopic.php?id=24229&cat=1) gemaakt.
het probleem is nu:
Hoe kan ik de server elke zaterdag een mail laten zenden met daarin ALLE events van die volgende week, tot en met vrijdag?
Als iemand me de query/queries kan geven, heb ik al genoeg ;)
In de db staan velden met dag, maand, jaar...
Stel dat ze wel in 1 date veld met de naam 'datum' staan. Om alle events van de zondag-vrijdag te laten zien. Werkt natuurlijk alleen als het script op zaterdag aangeroepen wordt.
Code (php)
1
2
3
4
5
2
3
4
5
SELECT event
FROM tabel
WHERE datum BETWEEN
DATE_ADD(CURDATE(), INTERVAL 1 DAY) AND
DATE_ADD(CURDATE(), INTERVAL 7 DAY)
FROM tabel
WHERE datum BETWEEN
DATE_ADD(CURDATE(), INTERVAL 1 DAY) AND
DATE_ADD(CURDATE(), INTERVAL 7 DAY)
Als je dag, maand en jaar in aparte velden van (neem ik aan) het type INT hebt staan wordt het allemaal veel lastiger. Je kunt wel 7 dagen bij de huidige dag optellen, maar wat nu als het vandaag 30 oktober is. Dan is het op die manier over 7 dagen dus 37 oktober.
Kortom, de query wordt dan lang en lastig.
oke, merci, ik zal eens kijken wat ik ermee kan doen ;)
hoe kan ik nu ,als ik al mijn dag, maand en jaar velden heb omgezet tot één data veld, daaruit halen dat ik op een plaats maand 1 wil laten zien, op een volgende plaats maand 2, enzovoort?
Daarvoor deed ik dat met:
Code (php)
1
2
3
2
3
<?
$sql = "SELECT * FROM agenda WHERE month = 1 AND year = '$year' ORDER BY day, uur, minuut ASC";
?>
$sql = "SELECT * FROM agenda WHERE month = 1 AND year = '$year' ORDER BY day, uur, minuut ASC";
?>
Greetings
deze query selecteert dan alles van de huidige maand. de rest kun je dan zelf wel bedenken toch? ;)
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
merci;) zo lukt het:)
Code (php)
1
2
3
2
3
<?php
$query = "SELECT * FROM agenda WHERE TIMEDIFF NOW() , DATE_ADD(NOW(), INTERVAL 7 DAY)";
?>
$query = "SELECT * FROM agenda WHERE TIMEDIFF NOW() , DATE_ADD(NOW(), INTERVAL 7 DAY)";
?>
Kan zoiets niet?
maar als ik nu wil adden, dan geeft die rare dingen, wss omdat ik getallen aftrek van elkaar..
dit is de insert query:
Code (php)
1
2
3
2
3
<?
mysql_query("INSERT INTO agenda (id, datum, day, month, year, uur, minuut, event, wie, bijwie, plaats) VALUES ('', '$year-$month-$day', '$uur', '$minuut', '$event', '$wie', '$bijwie', '$plaats')") or die(mysql_error());
?>
mysql_query("INSERT INTO agenda (id, datum, day, month, year, uur, minuut, event, wie, bijwie, plaats) VALUES ('', '$year-$month-$day', '$uur', '$minuut', '$event', '$wie', '$bijwie', '$plaats')") or die(mysql_error());
?>
als error geeft ie:
oei, zie da fout wss al :$
Dus, heb je het nu werkend?
ik had id, datum, day, month, year,....
waar het alleen id, datum, ... moest zijn ;)
om dat soort fouten te voorkomen adviseer ik je een query als volgt op te schrijven.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
mysql_query("INSERT INTO
agenda (
datum,
day,
month,
year,
uur,
minuut,
event,
wie,
bijwie,
plaats)
VALUES ('".$year."-".$month."-".$day."',
'".$uur."',
'".$minuut."',
'".$event."',
'".$wie."',
'".$bijwie."',
'".$plaats."')
") or die(mysql_error());
?>
mysql_query("INSERT INTO
agenda (
datum,
day,
month,
year,
uur,
minuut,
event,
wie,
bijwie,
plaats)
VALUES ('".$year."-".$month."-".$day."',
'".$uur."',
'".$minuut."',
'".$event."',
'".$wie."',
'".$bijwie."',
'".$plaats."')
") or die(mysql_error());
?>
Kijk ook even naar hoe ik de variabelen heb opgeschreven.
En nog belangrijker, id moet je zelf geen waarde geven, je moet hem niet in je query opnemen, want de database geeft die zelf wel een waarde, tenminste als je hem op auto-increment hebt staan.
En hoe je nu de datum in de database zet, tja, het is wel goed, maar beter is NOW() om te gebruiken.
zo dus.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
Ik zal erop letten;)
Bedankt :)
Stefan van Iwaarden schreef op 05.11.2006 16:19:
hoe zit dat precies?
NOW() is een MySQL functie die de huidige datum en tijd retourneerd. Die kan je gewoon gebruiken om je datum mee te vullen, is gemakkelijker dan de PHP functie te gebruiken.
ok, thx :)