Beste mensen,

Ten eerste nog allemaal de beste wensen.


Ik heb het volgende

<?php

$datumnu = date("y-m-d");

$query = "SELECT * FROM agenda WHERE datum >= $datumnu ORDER BY datum";
$resultaat = mysql_query($query) or die ("<p>FOUT MET DE DATABASE! Kan geen verbinding maken met de database - informeer de webmaster!</p>");
while ($obj = mysql_fetch_object($resultaat)){

$jaar = substr($obj->datum, 0,2);
$maand = substr($obj->datum, 2,2);
$dag = substr($obj->datum, 4,2);

$dagn = date("D", mktime(0, 0, 0, $maand, $dag, $jaar));

if ($dagn == "Mon") { $dagnaam = "Ma"; }
if ($dagn == "Tue") { $dagnaam = "Di"; }
if ($dagn == "Wed") { $dagnaam = "Wo"; }
if ($dagn == "Thu") { $dagnaam = "Do"; }
if ($dagn == "Fri") { $dagnaam = "Vr"; }
if ($dagn == "Sat") { $dagnaam = "Za"; }
if ($dagn == "Sun") { $dagnaam = "Zo"; }



echo "<div class=\"agendaitem\">\n";
echo "<table border=0>";
echo "<tr>\n";
echo "<td valign=\"top\" width=\"20\">$dagnaam</td>\n";
echo "<td valign=\"top\" width=\"60\"><span class=\"datum\"> $dag/$maand/$jaar</span>";
if (!empty($obj->tijd)) { echo "<br/><span class=\"tijd\">".$obj->tijd."</span>"; }
echo "</td>\n";
echo "<td valign=\"top\" ><strong>$obj->plaats, $obj->evenement</strong><Br/><p class=\"oms\">";
if (!empty($obj->omschrijving)) { echo $obj->omschrijving; }
if (substr($obj->url,0,7) != "http://") { $url = "http://".$o->url; } else { $url = $o->url; }
if (!empty($obj->url)) { echo "&nbsp;| <a href=\"".$url."\" target=\"_blank\" title=\"$obj->url\">Website</a>"; }
echo "</p></td></tr></table>\n";
echo "</div>\n";

}

?>

In de database staat de tijd 2010-02-20

Maar op de website ziet het er zo uit

www.chrisderoo.nl/chris/agenda.php

Hoe kan ik dit veranderen want ik zie het niet meer( lees slaaaaaapp)
Zodat hij de juiste dag en datum goed geeft.


Rieksie

P.S Welterusten
Je lijkt erg omslachtig bezig te zijn.

Nu maak je van een timestamp een datum. Vervolgens substract je daar uit de dag maand en jaar. En deze gebruik je vervolgens weer om een nieuwe tijd te maken.

Volgens mij kan je het jezelf een stuk makkelijker maken als je met een timestamp in seconden werkt. De tijd in het formaat van time(); bedoel ik dan. vervolgens kan je heel eenvoudig met date() de juiste gegevens uit de tijd halen.

http://php.net/manual/en/function.date.php
P.S.
en die dagnamen omzetten, zou je ook leuk zo kunnen doen:

<?php
$tijd = time();
$dagn = date('w',$tijd);
$dagnaam = array(0 => "zo", 1 => "ma", 2 => "di", 3 => "wo", 4 => "do", 5 => "vr", 6 => "za", );

echo $dagnaam[$dagn];
?>
Volgens mij haal ik de gegevens niet goed uit de database met de $query.

kan ook niet de juiste vinden. Help!

Rieksie
Ja, klopt, je doet het niet goed want je je geeft in $datumnu het jaar op als twee cijfers. Een database gebruikt vier cijfers voor een jaar.
Ook kun je beter NOW() gebruik in de query.
Zie ook http://phptuts.nl/view/1/
Wat dacht je van zo een query:


$sql = mysql_query("SELECT
						*,
						DATE_FORMAT(datum, '%m-%d-%Y') AS ndatum
					FROM
						agenda
					WHERE
						datum >= NOW()
					ORDER BY
						datum
					");



Dan kan je je datum zoals je wilt, en sla hem wel gewoon op als DATETIME en doe je het dus velemale simpeler
@Milo

Werkt hier dus niet zoals jij gedacht had. En nu krijg ik er ook tijd bij van nu?

Zoals ik het nu eindelijk heb komt de agenda punten er nu wel goed uit en de datum ook wel alleen de datum staat andersom.

En dat krijg ik niet goed wat ik ook probeer.

<?php
$query = "SELECT * FROM agenda WHERE datum >= $datumnu ORDER BY datum ";
$resultaat = mysql_query($query) or die ("<p>FOUT MET DE DATABASE! Kan geen verbinding maken met de database - informeer de webmaster!</p>");
while ($obj = mysql_fetch_object($resultaat)){


$dag = substr($obj->datum, 4,2);
$maand = substr($obj->datum, 2,2);
$jaar = substr($obj->datum, 0,2);
?>

Het zal met de $query te maken hebben maar ik kom er niet uit.


Rieksie

[edit]
www.chrisderoo.nl/chris/agenda.php
{/edit}
beste mensen,

Hoe kan ik dat ik een datum toe kan voegen aan de database van 1985?
En nog het ergste, het wordt gewoon op de website getoont. :(

Wie wil mij aub helpen want dit gaat ten koste van mijn slaap.


<?php

$datumnu = date("d-m-y");


$query = "SELECT * FROM agenda WHERE datum >= $datumnu ORDER BY datum ";
$resultaat = mysql_query($query) or die ("<p>FOUT MET DE DATABASE! Kan geen verbinding maken met de database - informeer de webmaster!</p>");
while ($obj = mysql_fetch_object($resultaat)){


echo "<div class=\"agendaitem\">\n";
echo "<table border=0>";
echo "<tr>\n";

echo "<td valign=\"top\" width=\"80\"><span class=\"datum\"> <b>$obj->datum </b></span>";
if (!empty($obj->tijd)) { echo "<br/><span class=\"tijd\">".$obj->tijd."</span>"; }
echo "</td>\n";
echo "<td valign=\"top\" ><strong>$obj->plaats, $obj->evenement</strong><Br/>";
echo "</td></tr></table>\n";
echo "</div>\n";

}

?>

Rieksie
waarom gebruik je geen tabs zoals Milo het deed?
Dat is veel overzichterlijker;)
Dit $datumnu = date("d-m-y"); is dus géén datum maar tekst en daar kan je niet mee rekenen en/of vergelijkingen mee maken. Dat houdt in dat WHERE datum >= $datumnu dus totaal onbetrouwbaar is en van alles kan selecteren. De enige manier om met een datum te werken is in het standaard format: yyyy-mm-dd. In de database gebruik je dus alleen DATE of DATETIME.
Daarom had ik in mijn query ook al date_format gezet zodat hij wel ze datum netjes kon echoen maar ze datum veld wel datetime moest...

Reageren