Du mener while($j<$i)
der.
Husk, du øgede $i efter det sidste indlæg. Det betyder, at $i vil være højere end den maksimale nøgle for $dish.
Nogle tanker:
Hver gang du tester for lighed med null, bør du overveje at bruge is_null
(eller !er_nul). Det er mere præcist.
Dette:
$dish[$i]=$row['dishes'];
$i++;
Ville være bedre som:
// obviously instead of $i you would use count($dish) later (or use foreach)
$dish[]=$row['dishes'];
Den sidste while-løkke ville være bedre som foreach:
foreach($dish as $val)
{
echo $val;
}