anoniem Geplaatst: 20 augustus 2003 Delen Geplaatst: 20 augustus 2003 Vanuit een database wil ik nieuwskoppen opvragen. Hierbij moet de datum worden getoond. Deze staat nog op engels. De maand is dus august en de dag wednesday. Ik wil hier de nederlandse namen voor gebruiken, maar ik weet niet hoe. De volgende code heb ik al, maar ik weet niet hoe ik verder moet: <?php $db = mysql_connect("***","***","***"); mysql_select_db("test", $db) or die ("FOUT: Het openen van de database is mislukt"); $resultaat = mysql_query("SELECT kop, date_format(datum, '%m %W %e %M %Y') FROM yolknieuws ORDER BY datum DESC LIMIT 15", $db); while (list($kop, $datum) = mysql_fetch_row($resultaat)){ echo("$datum | & $kop<br>\n"); } $maand[0] = ""; $maand[1] = "Januari"; $maand[2] = "Februari"; $maand[3] = "Maart"; $maand[4] = "April"; $maand[5] = "Mei"; $maand[6] = "Juni"; $maand[7] = "Juli"; $maand[8] = "Augustus"; $maand[9] = "September"; $maand[10] = "Oktober"; $maand[11] = "November"; $maand[12] = "December"; for($i=0; $i<=12; $i++){ echo("$maand[$i]<br>"); } ?> De uitvoer van deze code staat op http://81.59.96.207/test_db.php Wie heeft er een oplossing? Quote Link naar reactie
anoniem Geplaatst: 20 augustus 2003 Auteur Delen Geplaatst: 20 augustus 2003 Waarschijnlijk is het handiger om de datum niet via date_format() in de query op te vragen, je maakt het jezelf nu vrij moeilijk. Beter is in dit geval om de datum als Unix Timestamp op te vragen zodat je deze direct kunt voeren aan [url=http://nl.php.net/date]date()[/url]. Hoe je je SQL moet aanpassen weet ik niet, zal ff kijken of ik het kan vinden. - Bas Quote Link naar reactie
anoniem Geplaatst: 20 augustus 2003 Auteur Delen Geplaatst: 20 augustus 2003 Ik weet er niet al te veel vanaf, maar is dat met YEAR(), MONTH(), DAYOFMONTH() en DAYOFWEEK()? Of is dat niet wat je bedoelde? Quote Link naar reactie
anoniem Geplaatst: 20 augustus 2003 Auteur Delen Geplaatst: 20 augustus 2003 Allereerst verander je de query:[code:1:79db5aa271]$sql = "SELECT kop, UNIX_TIMESTAMP(datum) FROM yolknieuws ORDER BY datum DESC LIMIT 15;"; $resultaat = mysql_query($sql);[/code:1:79db5aa271]Vervolgens ga je nu de variabelen op een andere manier bewerken. Om het geheel soepel te laten werken plaats je de volgende arrays vóórdat je de datum gaat bewerken:[code:1:79db5aa271]$maanden = array("","januari","februari","maart", "april","mei","juni", "juli","augustus","september", "oktober ,"november","december"); $dagen = array("zondag","maandag","dinsdag","woensdag", "donderdag","vrijdag","zaterdag");[/code:1:79db5aa271]Vervolgens kan je heel simpel de datum weergeven met:[code:1:79db5aa271]$space = " "; while (list($kop, $datum) = mysql_fetch_row($resultaat)){ echo $dagen[date("w",$datum)], $space, date("j",$datum), $space, $maanden[date("n",$datum)], $space, date("Y",$datum), " | ", $kop, "<br>\n"); }[/code:1:79db5aa271]Het lijkt wat omslachtig (en dat is het ook) maar de Nederlandse taal zit nou eenmaal niet in PHP gecompileerd en dus doen we het zo. - Bas [b:79db5aa271]Edit:[/b:79db5aa271] ik ben niet zo thuis in MySQL, maar met die functies zou je alles idd nog wat korter kunnen maken. Het gebruik van date() wordt dan overbodig maar je query wordt wat langer. Quote Link naar reactie
anoniem Geplaatst: 21 augustus 2003 Auteur Delen Geplaatst: 21 augustus 2003 Eindelijk!!! Ik heb al in meerdere forums dezelfde vraag gesteld, maar niemand kon een werkend antwoord geven. Dit keer gelukkig wel. Bedankt Bas. Hij werkt prima! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen