ESKA: Jahresüberblick mit PHP/MySQL wie besser machen?

Beitrag lesen

Hallo,
habe mir einen kleinen Jahresübersichtskalender erstellt in dem fix Reisetermine und auch optionale und angefragte Reisetermine auftauchen (für den schnellen Überblick wann bin ich oder mein Kollege wo).
Läuft eigentlich auch ohne Probleme, außer daß er Ewigkeiten zum laden braucht (nachdem wir jetzt doch schon sehr viele Termine für viele Leute eingegeben haben - abfrage läuft übrigens pro Kollege Also Kalender für Hans, Kalender für Bernd,etc.)
Da dieses Teil eins meiner ersten Projekte in PHP/MySql ist, ist es auch noch sehr kompliziert aufgebaut.

Daher die Frage wie kann man es besser machen?

Kann man die Abfrage beschleunigen (durch joins oder ähnliches)

Kann man die Ausgabe besser machen (oder viel mehr wie kann man...)
Ich frage zuerst ab ob der Termin tatsächlich existiert (30.02. gibt es nun mal nicht...)
Dann ob der Tag auf ein Wochenende fällt
dann ob an dem Tag ein Termin existiert
und wenn ja wie der Status des Termines ist.
Je nach Ergebniss wird die Tabellenzelle bzw. die Schrift mit anderen Farben formatiert.
Hier mal den Code (ich hoffe, ich habe nichts rausgelöscht, da ich diverse internen ANgaben natürlich verbergen muß....):
----
<?
echo "<table border='1'>";
echo "<tr>";
echo "<td width='20'></td>";
echo "<td width='65'>Januar</td>";
echo "<td width='65'>Februar</td>";
echo "<td width='65'>März</td>";
echo "<td width='65'>April</td>";
echo "<td width='65'>Mai</td>";
echo "<td width='65'>Juni</td>";
echo "<td width='65'>Juli</td>";
echo "<td width='65'>August</td>";
echo "<td width='65'>September</td>";
echo "<td width='65'>Oktober</td>";
echo "<td width='65'>November</td>";
echo "<td width='65'>Dezember</td>";
echo "<td width='20'></td>";
echo "</tr>";

$i=1;
//-- i=Monat
$j=1;
//-- j=Tag
$k=$Date_Year;
while ($j<32)
{
echo "<tr>";
echo "<td width='20'>$j</td>";
while ($i<=12)
{
$sql = "select ID, Status, City, No from Table where C_ID=$C_ID && Date_Year=$Date_Year && Date_Month=$i && Date_Day=$j ORDER BY Select_Date";
/*Select_Date ist Datum im Datumsformat; Date_Year, Date_Month, und Date_Day sind extra Felder mit den jeweiligen Angaben; Das Jahr und die Kollegen ID wird von einem Formular übergeben*/

$erg = mysql_query($sql);
if (!$erg) die("<br>Abfrage nicht erfolgreich");
else
{
$m=mktime(12,0,0,$i,$j,$k);
$tag=getdate($m);
$menge = mysql_num_rows($erg);
$check1 = checkdate($i,$j,$k);
if($check1 != 1)
{
echo     "<td width='65' bgcolor='#000000'></td>";
}
else
{
if($tag[weekday]==Saturday || $tag[weekday]==Sunday)
{

if ($menge==1)
{
$Aus = mysql_fetch_array($erg);
if($Aus["Status"]==O || $Aus["Status"]==R)
{
echo     "<td class='rg'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
elseif ($Aus["Status"]==P)
{
echo     "<td class='bg'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
else
{
echo     "<td class='gg'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
}
elseif ($menge>1)
{
$Aus = mysql_fetch_array($erg);
echo     "<td class='rg'><a href='xxx.php?No=" .$Aus["No"] ."'> $menge Termine</a></td>";
}
else
{
echo     "<td class='gg'>..</td>";
}
}
else
{
if ($menge==1)
{
$Aus = mysql_fetch_array($erg);
if($Aus["Status"]==O || $Aus["Status"]==R)
{
echo     "<td class='wg'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
elseif ($Aus["Status"]==P)
{
echo     "<td class'wb'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
else
{
echo     "<td class='wb'><a href='xxx.php?ID=" .$Aus["ID"]."'>" .$Aus["City"] ."</a></td>";
}
}
elseif ($menge>1)
{
$Aus = mysql_fetch_array($erg);
echo     "<td class ='wr'><a href='xxx.php?No=" .$Aus["No"] ."'> $menge Termine</a></td>";
}
else
{
echo     "<td class 'wb'>..</td>";
}
}
}
}
$i++;
}
echo "<td class='wb'>$j</td>";
echo "</tr>";
$i=1;
$j++;
}
$j=1;

echo "</table>";
?>
----

Also falls euch was auffällt und Ihr Anregungen habt wie man das besser machen kann, wäre ich sehr dankbar.

Beste Grüße,
ESKA