Per prima cosa devi sapere bene che query devi generare e come sono messi i dati che ti arrivano.
A volte come sono i dati non lo si puo' sapere a priori quindi e' buona norma usare la funzione var_dump per controllare come sono i dati.
Inoltre e' buona norma studfiare bene come funzionano le tecnologie e se vai nel sito di mysql sicuramente torverai un sacco di incofmrazioni su come fare le query di inseriemnto anche con piu' righe in una unica query.
In soldoni cmq sql supporta i seguenti tipi di inserimento dati per righe multiple :
1 -
insert into table (campo1,cmapo2,campo3) values( 'valore0.1' , 'valore0.2' , 'valore0.3' ) ;
insert into table (campo1,cmapo2,campo3) values( 'valore1.1' , 'valore1.2' , 'valore1.3' ) ;
etc...
2 -
insert into table (campo1,cmapo2,campo3)
values( 'valore0.1' , 'valore0.2' , 'valore0.3' ) ,
values( 'valore1.1' , 'valore1.2' , 'valore1.3' ) ,
values( 'valore2.1' , 'valore2.2' , 'valore2.3' ) ;
Quindi puoi tranqullamente sfruttare la seconda soluzione se devi inserire molte righe insieme.
Facendo cmq attenzione ai tempi di esecuzione, se fossero troppo elevati riceversti un errore tipo : "Mysql has gone away". Ossia la connesione e' stata terminata. Ma succede quando hai davvero troppi dati da inserire e quindi sfori il tempo max di connessione
Poi per controllare come e che dati ti arrivano io di solito scrivo 4 semplici righe di codice :
echo "<pre>" ;
var_dump($variabile);
echo "</pre>";
die();
Cosi' puoi controllare che dati ti arrivano.
Ultima cosa, a mio avviso e' buona norma evitare (per quanto possibile) i cicli annidati, nel tuo caso puoi risolverti al cosa con cicli lineari eseguiti in sequenza.
Ciauz.