Ja und?
Übersichtlich programmieren. Potentielle Fehlerquellen nicht in eine Zeile/Anweisung zusammenstopfen, sondern voneinander trennen. Fehlerbehandlung einbauen.
Notfalls Debugausgaben benutzen.
Sonst dauert das Raten ewig.
PHP-Code:
<?php
function return_month($date_day, $date_month, $date_year, $kind, $place) {
if($date_day!="" AND $date_month!="" AND $date_year) {
$sql = "SELECT month, date_month, date_year, date FROM event_month WHERE free='yes' AND date_month='$date_month' AND date_year='$date_year'";
/* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">', $sql, '</td></tr>';
$event_month=mysql_query($sql);
}
else if($kind!="") {
// nichts?
$event_month = false;
}
else if($place!=""){
// nichts?
$event_month = false;
}
else {
$sql = "SELECT month, date_month, date_year, date FROM event_month WHERE free='yes'";
/* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">', $sql, '</td></tr>';
$event_month=mysql_query($sql);
}
return $event_month;
}
echo '<table width="100%" cellspacing="0" cellpadding="0">
<tr bgcolor="', toggleBG("#CCCCCC","#FFFFFF"), '">
<td width="20%" align="left">Name</td>
<td width="20%" align="left">Datum</td>
<td width="20%" align="left">Ort</td>
<td width="20%" align="left">Art</td>
<td width="20%" align="left">Eintritt</td>
</tr>';
$result = return_month($date_day, $date_month, $date_year, $kind, $place);
if (!$result) {
die("return_month($date_day, $date_month, $date_year, $kind, $place) liefert false. ". mysql_error());
}
/* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">', mysql_num_rows($result), ' Ergebnisse</td></tr>';
while($row=mysql_fetch_array($result)) {
echo '
<tr bgcolor="', toggleBG("#CCCCCC","#FFFFFF"), '">
<td align="left" colspan="5" style="color:#FF6600; font-weight:bold;">', htmlentities($row['month']), '</td>
</tr>';
}
echo '</table>';
?>