Passa attraverso l'arrays di input del module

Ho un module di output dinamico in cui i campi di input del text hanno lo stesso nome. Ho bisogno di scorrere gli input di text e inserire più righe nel database per each input di field di text.

$sql="INSERT INTO orderitems (orderNum,productNum,quant) VALUES ('$num1','$_POST[pNum]','$_POST[quant]')"; <input type="text" name="pNum" value="<?php echo $t1; ?>"> //may have several with same name 

Se si desidera submit il module con più input con lo stesso nome, è necessario aggiungere [] al nome. Quindi puoi usarlo sul lato PHP come each arrays (cioè in loop con foreach )

<input type="text" name="pNum[]" value="<?php echo addslashes($t1); ?>"> (a proposito, ricorda sempre di quotare)

e sul lato PHP:

 foreach($_POST['pNum'] as $value) { // remember about quoting here, too } 

Soooo …. loop attraverso loro e inserire più righe?

 for ($i = 0; $i < count($_POST['pNum']); $i++) { $sql = 'INSERT INTO orderitems (orderNum, productNum, quant) VALUES (' . "'" . mysql_real_escape_string($num1) . "', " . "'" . mysql_real_escape_string($_POST['pNum'][$i]) . "', " . "'" . mysql_real_escape_string($_POST['quant'][$i]) . "'" . ')'; } 

Nota l'uso di mysql_real_escape_string . Mai, MAI, MAI iniettare valori da $_POST o $_GET o $_COOKIE o qualsiasi altro valore che l'utente ha fornito direttamente in un'istruzione SQL. Oltre alla possibilità di interruzione se il valore contiene un ' , questo può anche essere usato maliziosamente per iniettare SQL che altera (o cancella) il tuo database.

Puoi inserire molte righe con una richiesta INSERT, devi solo crearla con PHP http://dev.mysql.com/doc/refman/5.0/en/insert.html