wat doe ik precies verkeerd?
<?
$query = mysql_query("SELECT city, venue, datum, country FROM concerts WHERE zichtbaar = 1 AND date_format(datum,'%m%d') = date_format(now(),'%m%d')");
for ( ;$r = mysql_fetch_assoc($query); )
{
if (date_format(now(),'%m%d') == date_format($r['datum'],'%m%d'))
{
echo "<span class='subkop'>Gigs:</span>";
echo "<br><br>";
echo "<span class='normal'>Today in <i>".$r['city'].", ".$r['country']."</i> there's a gig at <i>".$r['venue']."</i></span><br>";
}
else
{
echo "There's no gig today";
}
}
?>
Verder is het handig om eens <?php en ?> om je script te zetten, gebruik de EDIT mogelijkheid binnen jouw topic.;
date_format(datum,'%m%d') = date_format(now(),'%m%d') is overigens geen handige vergelijking, met MONTH() en DAY() kun je een veel fraaiere vergelijking maken.
Er zitten nog veel meer fouten in:
<?php
if (date_format(now(),'%m%d') == date_format($r['datum'],'%m%d'))
{
?>
date_format() is geen php-functie, net zo min als now() dat is.
Ik snap niet wat je wilt bereiken. Je hebt in de query een WHERE staan, dit levert dus een beperkt aantal resultaten op, en volgens ga je dezelfde vergelijking nog eens met if/else in php bouwen. Dat is zinloos omdat je door de WHERE al precies weet waaraan de resultaten voldoen.
Leg eens uit wat de bedoeling is en waarom je geen volledige vergelijking in de SQL wilt doen. Met een CASE is ook een hele hoop mogelijk.
In mijn database staat een concert datum... wanneer er vandaag een concert is dan moet hij dus de plek, plaats en land laten zien (op de concert datum) wanneer er geen concert is dan moet hij "er is vandaag geen concert" laten zien
Hopelijk heb ik het zo een beetje goed uitgelegd...