Door
Onbekende gebruiker
op 09-10-2019 15:06
gewijzigd op 09-10-2019 15:20
1.671 views
Hey leden,
Het is gelukt om de data van deze maand te tonen.
$dt = new DateTime();
// these dates can be... anything really
$intervalStart = $dt->format('Y-m-d'); // today
$intervalEnd = $dt->format('Y-m-t'); // end of month
$intervalEnd .= ' 23:59:59';
$sql = "SELECT *
FROM sportevenementen
WHERE datumtijd BETWEEN '".$intervalStart."' AND '".$intervalEnd."'
ORDER BY datumtijd ASC";
$result = mysqli_query($conn, $sql);
Maar nu wil ik graag wanneer je onder aan de pagina van oktober op november (volgende) zou klikken, de data van november wordt getoond.
$sql2 = "SELECT * FROM sportevenementen WHERE MONTH(datumtijd) = MONTH(NOW() + INTERVAL 1 MONTH) AND YEAR(datumtijd)= YEAR(NOW()) ORDER BY datumtijd ASC;";
Kan ik hiervoor het beste een sql2 query voor aanmaken?
Want volgens mij is het niet echt handig om een aparte pagina voor november aan te maken, neem ik aan?
Je zou nette URL's kunnen creëren (calendar/2019/november) maar dan zul je dus code moeten maken die dit weer uitleest.
Je zult in ieder geval op een of andere manier de informatie over moeten brengen want de server weet niet automagisch welke informatie jij wilt zien.
Wat is er tegen op ?(y=2019&)m=11 ?
?
Onbekende gebruiker
09-10-2019 17:51
gewijzigd op 09-10-2019 17:53
Bedankt voor je snelle reactie,
Oke, ik snap hem. Ja, het is mooier als de pagina sportevenementen.php blijf houden Xd.
Is het geen goede optie om dan alle data van alle maanden te tonen.
Dan met klapboxen bepaalde maanden te openen, maar dan zit ik met het probleem dat alle data geladen moet worden.
Dan kan ik ook in principe een aparte pagina maken van de volgende maand?
"Dan kan ik ook in principe een aparte pagina maken van de volgende maand?"
Ik zou het gewoon dynamisch houden zoals Thomas aangeeft. Elke website doet dit immers. Dus ik zou het "Moet zo blijven" gewoon loslaten. Je kunt inderdaad iets met htaccess rewrite mooier maken.
Hoe zie je dat voor je, van elke maand en jaar een aparte pagina?
?
Onbekende gebruiker
09-10-2019 18:08
Ja, daar hebben jullie gelijk in. Dat het beter is om de website dynamisch te houden.
In het script boven aan de pagina, is het alleen voor de maand november.
Ja, dat klopt. Met htaccess kan ik de pagina rewriten.
Als je Thomas voorbeeld aanhoud zou je zoiets kunnen doen
<?php
$dt = new DateTime();
if(isset($_GET['y']) && isset($_GET['m'])) {
if(checkdate($_GET['m'], 1, $_GET['y'])) {
$dt = new DateTime($_GET['y'].'-'.$_GET['m'].'-01');
}
}
$intervalStart = $dt->format('Y-m-d'); // today
$intervalEnd = $dt->format('Y-m-t'); // end of month
$intervalEnd .= ' 23:59:59';
?>
?
Onbekende gebruiker
09-10-2019 18:17
Oke, maar ik heb geen idee hoe ik dit in de URL kan verwerken voor de aankomende maanden.
Met een GET of POST?
En hoe ik dit weer combineer met de sql query.
Dit heb je al in je query. Je gebruikt nu die intervalStart en intervalEnd al in je query. Die pas je alleen aan.
Zoals Thomas zei; de link wordt dan sportevenementen.php?y=2019&m=11
De navigatie zou je bijvoorbeeld zo kunnen doen:
<?php
echo '<a href="' . $dt->sub(new \DateInterval('P1M'))->format("?\y=Y&\m=m") . '">Vorige</a>
<a href="' . $dt->add(new \DateInterval('P2M'))->format("?\y=Y&\m=m") . '">Volgende</a>';
?>
?
Onbekende gebruiker
09-10-2019 18:26
gewijzigd op 09-10-2019 18:28
Ja, bedankt!
$dt->sub daar was ik nooit opgekomen. Wat betekent sub?