ik wil graag mijn nieuws selecteren uit de database waarvan bijv. aleen de maand november is
ik heb dit nu al in mekaar geknutselt aleen werkt dit nog niet naar behoren
ik ben ook een beetje een noob met php maar ik begin er al wat meer van te snappen mischien dat jullie mij met dit probleem willen helpen (of weten wat ik fout doe) :
<?php
$maand=$_GET['maand'];
if(!empty($maand)){
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." ORDER BY datum DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}else{
mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC");
echo '
<li> <a href="#">'.$row['titel'].'</a><br />
'.$row['nieuws'].'<br />
<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span> </li>
';
}
?>
Trouwens - ik weet niet of dit je bedoeling is - maar nu krijg je als je bijvoorbeeld in nov. 2007 berichten hebt geplaatst én in 2008, de berichten van allebei de jaren. Ik vraag me af of je dit wilt.
Nee eigenlijk niet, mysql_real_escape_string.. is bedoeld voor strings. Met typecasting kun je een variabele dwingen een bepaald type aan te nemen. In jouw geval
<?php
$maand = (int)$_GET['maand'];
$jaar =(int)$_GET['jaar'];
if(!empty($maand) && !empty($jaar)){
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws WHERE MONTH(datum) = ".$maand." AND YEAR(datum) = ".$jaar." ORDER BY datum DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}else{
$row = mysql_fetch_assoc(mysql_query("SELECT titel,nieuws,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM blog_nieuws ORDER BY id DESC"));
echo '<li> <a href="#">'.$row['titel'].'</a><br />';
echo $row['nieuws'].'<br />';
echo '<span class="smaller low">Published: <strong>'.$row['show_datum'].'</strong>, <strong><a href="#"></a></strong></span></li>';
}
als iemand nu ?maand=ab"c invoert dan wordt doormiddel van typecasting $maand null.
Als je mysql_real_escape_string zou gebruiken wordt $maand 'ab\"c'. Dit zou geen resultaten of misschien een error opleveren. ;)