Certo che ti esce così.
Invece dell'ultimo foreach, quello che ti stampa i dati, metti
echo "<pre>";
print_r($prodotti);
echo "</pre>";
vedrai che ti accorgi del problema.
EDIT: ho provato il tuo codice, non funziona, su tutti gli indici dell'array $prodotti dice che non sono definiti, proprio perché generi male tale array.

Rispondi quotando