Hey mensen!

Ik ben bezig met een agenda te maken, ik wil deze alleen per maand indelen, alle agenda punten zet ik gewoon in de database, met datum als : 22-02-1994
Alleen, ik wil dat ze er in de agenda(op de website) anders ingedeeld zijn. Dit per maand, dus:

Januarie 1994
Geen berichten

Februarie 1994
22 - Mark geboren, om: 23:00

Of iets dergelijks, ik heb dus een script nodig dat dit per maand sorteert, ik zou alleen niet weten hoe! Iemand enig idee?

Mvg, Mark
met datum als : 22-02-1994
Nee, zo moet je dat niet doen. Het formaat dd-mm-yyyy is namelijk helemaal geen datum, het is slechts een string waarvan wij hem herkennen als datum. De database doet dat echter niet!

Een datum sla je in de database in een DATE (of DATETIME) veld in het formaat yyyy-mm-dd op. Dan pas kun je er op een normale manier mee werken. In dat geval kun je namelijk gebruik maken van de vele datum- en tijdfuncties die MySQL je biedt.

De indeling die jij verder wilt hebben, heeft alleen te maken met de weergave van de gegevens en niet met het selecteren uit de database. Dit is dus ook iets dat je met PHP zult moeten oplossen. Selecteer daartoe alle events gesorteerd op datum uit de database, waarbij je eventueel DATE_FORMAT() gebruikt om dat datum op te maken. In PHP loop je vervolgens door de resultaat set waarbij je in een variabele bijhoudt wat de maand van het vorige record was. Als de maand van het huidige record daarvan verschilt, betekent dat je een nieuwe maand weer moet geven. Zo niet, dan hoef je enkel een volgende dag/event te tonen.
haha, mijn fout, ze staan ook als 1994-02-22 in de database, ze worden op de website al als 22-02-1994 weer gegeven;)
Mijn fout!

Maar, als je dat doet wat jij, blanche, zei doet. Dan moet je dus per maand kijken of die al erop staat, dus voor januarie 0001, februarie 0001, ect. Of zie ik het nu verkeerd, het is waarschijnlijk logies nadenken, maar ik kom zo niet op een idee

Mvg, mark
ik ben al aardig aan het zoeken, maar heb echt tijdnood, sorry, iemand die mijn kan helpen of toevallig zo'n script heeft?
Zoiets bedoelde ik dus:
<?php
$sql = "
SELECT
DATE_FORMAT(datumveld, '%M %Y') AS maand_jaar,
DAY(datum) AS dag
FROM
tabel
";

if(!$result = mysql_query($sql)) {
trigger_error(mysql_error());
}
else {
$previous = '';
while($row = mysql_fetch_assoc($result)) {
if($row['maand_jaar'] != $previous) {
// Nieuwe maand
$previous = $row['maand_jaar'];
echo $row['maand_jaar'].'<br />';

}

echo $row['dag'].'<br />';
}
}

?>
Hé vet bedankt! Echt, dank je, ik zal kijken wat ik er mee kan doen!
Blanche schreef op 07.06.2009 19:30
Zoiets bedoelde ik dus:
<?php
$sql = "
SELECT
DATE_FORMAT(datumveld, '%M %Y') AS maand_jaar,
DAY(datum) AS dag
FROM
tabel
";

if(!$result = mysql_query($sql)) {
trigger_error(mysql_error());
}
else {
$previous = '';
while($row = mysql_fetch_assoc($result)) {
if($row['maand_jaar'] != $previous) {
// Nieuwe maand
$previous = $row['maand_jaar'];
echo $row['maand_jaar'].'<br />';

}

echo $row['dag'].'<br />';
}
}

?>


Hé vet bedankt! Het is me met jou script gelukt!:D

Reageren