ich hab zwar keine Ahung wie die Tabelle "Speisen" aussieht, aber ich denke so geht es und Du hast dir ein SQL-Statement gespart: (iss untestet

)
PHP-Code:
$kats=mysql_query("SELECT * FROM speisen ORDER BY 'kategorie'";
$temp="";
while($kateg=mysql_fetch_array($kats)) {
if($temp!=$kateg['kategorie']) {
print "<tr><td class=\"teiler\" colspan=\"4\">".$kateg['kategorie']."</td></tr>"; }
$temp=$kateg['kategorie'];
print "<tr><td>".$kateg[1]."</td><td>".$kateg[2]."</td><td>".$kateg[3]."</td><td>".$kateg[4]."</tr>";
}