Wat ik wil is de komende 7 agenda punten weergeven.
Dus als er gisteren een feest was, dan mag die vandaag niet meer in de agende te voor schijn komen. Maar hij zal dus ook soms, agenda punten van de volgende maand erbij moeten pakken, anders kom je niet aan de 7.

Nu ben ik al zover met deze code:
<?php
$cafezaalagenda = mysql_query("
SELECT * FROM cafezaalagenda
WHERE concat(datumjaar,datummaand,datumdag) >= '".time()."'
ORDER BY concat(datumjaar,datummaand,datumdag)
LIMIT 7") or die (MySQL_Error());
?>

Nu laat hij wel de komende 7 agenda punten zien, maar die van gisteren staat er nog wel bij? Wat heb ik over het hoofd gezien? :S
Mss zal dit beter lukken : date
[php]time[/php] -- Geef de huidige UNIX timestamp
Jij hebt nodig:
[php]date[/php], en dan waarschijnlijk met iets als 'Ydm' als parameter.
Ja je kunt dit:
<?php
$cafezaalagenda = mysql_query("
SELECT * FROM cafezaalagenda
WHERE concat(datumjaar,datummaand,datumdag) >= '".time()."'
ORDER BY concat(datumjaar,datummaand,datumdag)
LIMIT 7") or die (MySQL_Error());
?>

vergelijken met dit:
<?php
$cafezaalagenda = mysql_query("
SELECT * FROM cafezaalagenda
WHERE datum >= '".time()."'
ORDER BY datum
LIMIT 7") or die (MySQL_Error());
?>
<?php
concat(datumjaar,datummaand,datumdag)
?>
zorgt ervoor dat dit samen wordt gepakt, en dat het zeg maar 1 'datum' wordt, waarmee je in dit geval kunt gaan vergelijken met time()

Maar het probleem is dus nog niet opgelost?

edit: kga nu de oplossing van jelmer even proberen!
<?php

$sql = 'SELECT * FROM table WHERE UNIX_TIMESTAMP(field) > ' . time() . ' LIMIT 7';

?>
Waarom sla je die agendapunten niet gewoon als DATE op? Dan kun je dit doen:

SELECT agendapunt
FROM tabelnaam
WHERE datum >= CURRENT_DATE()
ORDER BY datum ASC
LIMIT 7
ik kan dan toch nu ook gewoon dit doen:

SELECT agendapunt
FROM tabelnaam
WHERE concat(datumjaar,datummaand,datumdag)
>= CURRENT_DATE()
ORDER BY datum ASC
LIMIT 7

dan heb ik toch hetzelfde als jou, jan koehoorn?
Of zal dat niet werken?
ik denk het niet, maar je kan het proberen...
concat maakt er dit van: 20060927
die plakt dus alles aan elkaar.

wat geeft CURRENT_DATE() voor een output:
zo: 20060927
of zo: 27092006

Dan zou het toch op de een of andere zo wel moeten lukken, of heb ik hetnu mis?

edit: ik heb het nu zo:
<?php
$cafezaalagenda = mysql_query("
SELECT * FROM cafezaalagenda
WHERE concat(datumjaar,datummaand,datumdag)
>= CURRENT_DATE()
ORDER BY concat(datumjaar,datummaand,datumdag)
LIMIT 7") or die (MySQL_Error());
?>
maar het werkt dus toch niet? is er geen andere mogelijkheid, dan dat ik allemaal om ga zetten naar date??
Chupskie schreef op 26.08.2006 11:15
ik kan dan toch nu ook gewoon dit doen:

SELECT agendapunt
FROM tabelnaam
WHERE concat(datumjaar,datummaand,datumdag)
>= CURRENT_DATE()
ORDER BY datum ASC
LIMIT 7

dan heb ik toch hetzelfde als jou, jan koehoorn?
Of zal dat niet werken?

Nee, want CURRENT_DATE() geeft als format yyyy-mm-dd
<?php
$cafezaalagenda = mysql_query("
SELECT * FROM cafezaalagenda
WHERE concat(datumjaar,'-',datummaand,'-',datumdag)
>= CURRENT_DATE()
ORDER BY concat(datumjaar,datummaand,datumdag)
LIMIT 7") or die (MySQL_Error());
?>
zou nog kunnen werken, maar het is netter om je datums in DATE velden op te slaan

Reageren