Be, intanto controlla il tag form, non vedo la chiusura e in piu' messo cosi' potresti metterlo al livello esterno di table mi pare.
Comunque...
Codice PHP:
$prev_type '';
 while (
$row=mysql_fetch_array($result))
    {
        
$tipo $row['tipo'];
        
$table .= "<form action=\"\" method=\"POST\">";  // sicuro??
        
$piatto_id[$i] = $row['piatto'];
        
$prezzo_id[$i] = $row['prezzo'];
        
/*
         * se il tipo è diverso dal precedente inserisco una riga di tabella bianca
         */
        
$table .= ($tipo!=$tipo_prev && $i!=0)? "<tr><td></td><td></td><td></td><td></td></tr><tr>" "<tr>\n"
        
$table .= "<td width=50%><font face=verdana size=1 color=black>\n" $piatto_id[$i] . "</font></td>";
        
$table .= "<td width=15%><input name=\"piatto[$i]\" type=\"checkbox\" value=\"" $piatto_id[$i] . "\"></td>\n";
        
$table .= "<td width=15%><font face=verdana size=1 color=black>\n";    
        
$table .= "&euro;" $prezzo_id[$i] . "<input name=\"prezzo[$i]\" type=\"hidden\" value=\"".$prezzo_id[$i]."\">";
        
$table .= "</font></td>\n";
        
$table .= "<td width=15%>";
        
$table .= "<select name=qta[$i] style=font-size:11px; font-family: arial; color:black; background-color:#ffffff; bordercolor:#000000 BORDER:1>";
        
$table .= "<option value=0>0</option>";
        
$table .= "<option value=1>1</option>";
        
$table .= "<option value=2>2</option>";
        
$table .= "<option value=3>3</option>";
        
$table .= "<option value=4>4</option>";
        
$table .= "<option value=5>5</option>";
        
$table .= "<option value=6>6</option>";
        
$table .= "</select>";
        
$table .= "</td>";
        
$table .= "</tr>\n";
        
$i++;
        
$tipo_prev $tipo;
    } 
E' questo che intendevi?