Ik heb de onderstaande query. Graag zou ik met deze query alles uit de database halen van volgende week.
Dus dat hij alles menu's van maandag tot en met vrijdag er uit haald. en volgende week dus weer het zelfde grapje voor de week er op.
Hoop dat iemand kan helpen.
Groeten,
Gijs
$sql="select datum as xxx,
DAYOFWEEK(datum) as dag,
date_format(datum,'%e') as toondatum,
date_format(datum,'%m') as toonmaand,
voorg.omschrijving,
hoofdg.omschrijving,
nag.omschrijving,
voorg.plaatje,
hoofdg.plaatje,
nag.plaatje
from Dagmenu dm,
Gerecht as voorg,
Gerecht as hoofdg,
Gerecht as nag
where datum > date_sub(now(),interval 1 day)
and ((voorg.id=dm.voorgerecht_id
and hoofdg.id=dm.hoofdgerecht_id
and nag.id=dm.nagerecht_id )
or (voorg.id=dm.overig_id
and hoofdg.id=dm.overig_id
and nag.id=dm.overig_id ))
order by datum asc limit 1";
<?php
$next_week = getNextWeek();
echo $next_week;
function getNextWeek($datumstring="now") // return: komende maandag. Indien het nu maandag is, wordt de dag van vandaag teruggegeven. Haal eventueel lijn 8 weg indien je in dat geval toch de maandag daarop wil.
{
$m_next = new DateTime($datumstring);
$dag = ($m_next->format('N') > 0 ? $m_next->format('N') - 1 : 6 );
if ($dag > 0)
$m_next->modify('+'. (7 - $dag) .' day');
return $m_next->format('Y-m-d');
}
?>
meer info over de DateTime klasse: http://ditio.net/2008/06/03/php-datetime-and-datetimezone-tutorial/
Dan rest enkel nog $next_week in je sql te zetten.
Iets als
<?php "... WHERE datum >= ". $next_week ." AND datum < ( ". $next_week ." + INTERVAL 5 day ) ..." ?>
?
Onbekende gebruiker
09-06-2009 20:13
Je hoeft dat toch niet om te zetten met php?
Je kunt het toch gewoon met de db doen:
SELECT blaat
FROM tabel
WHERE tijd
BETWEEN NOW() AND NOW()+7DAY
Ik zou persoonlijk voor Karl zijn oplossing pakken. Heb je meteen alles en hoef je niets met PHP te berekenen. De database is veel beter in dit soort berekeningen.
Ik wil eigenlijk mensen deze week (maakt niet uit welke dag) de dagmenu's kunnen mailen van aankomende maandag tot en met vrijdag.
Dus onafhankelijk op welke datum we zitten wil ik de eerst volgende maandag tot vrijdag hebben. volgens mij werkt dat niet met BETWEEN NOW() AND NOW()+7DAY
<?php
$next_week = getNextWeek();
echo $next_week;
function getNextWeek($datumstring="now") // return: komende maandag. Indien het nu maandag is, wordt de dag van vandaag teruggegeven. Haal eventueel lijn 8 weg indien je in dat geval toch de maandag daarop wil.
{
$m_next = new DateTime($datumstring);
$dag = ($m_next->format('N') > 0 ? $m_next->format('N') - 1 : 6 );
if ($dag > 0)
$m_next->modify('+'. (7 - $dag) .' day');
return $m_next->format('Y-m-d');
}
?>
meer info over de DateTime klasse: http://ditio.net/2008/06/03/php-datetime-and-datetimezone-tutorial/
Dan rest enkel nog $next_week in je sql te zetten.
Iets als
<?php "... WHERE datum >= ". $next_week ." AND datum < ( ". $next_week ." + INTERVAL 5 day ) ..." ?>
Hallo,
Ik loop bij regel 2 al vast. $next_week = getNextWeek();
Ben helaas niet goed genoeg in php om te snappen waarom het script niet door loopt. Zou je kunnen helpen?
Groeten,
Gijs
Gelieve Niet Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.