-
Record multipli da form
Ciao ragazzi, per voi sarà una banalità ma proprio non ci riesco...
Ho la necessità di salvare record a gruppi di 7/8 righe alla volta ma proprio non capisco come impostare la query.
Semplificando al massimo è come se dovessi creare una rubrica telefonica inviando al db gruppi di nominativi per i quali inserisco nome, cognome e n° di telefono in un colpo solo...
es:
Nome - Cognome -Tel
Nome - Cognome -Tel
Nome - Cognome -Tel
Nome - Cognome -Tel
Nome - Cognome -Tel
Nome - Cognome -Tel
*INVIA*
Devo creare un array e ciclare la query "insert into..."?
Credo di sì, a parole è facile, ma non so proprio da dove cominciare....avete qualche dritta?
:???:
-
Ogni campo del form deve essere un array, in tal modo nello script php riceverai questi array popolati con tutti i dati, di conseguenza, come dicevi tu, puoi ciclarti questi array ed inserire man mano i record.
I nomi dei campi del form dovranno essere del tipo:
<input type="text" name="cognome[]" />
ciao!
-
Qundi sono sulla strada giusta...è un buon inizio! :razz:
Supponiamo quindi che io ad esempio abbia 5 contatti da inserire, questa sintassi è corretta?
<form action="elabora.php" method="post">
<INPUT TYPE="text" NAME="nome[1]" value="">
<INPUT TYPE="text" NAME="cognome[1]"value="">
<INPUT TYPE="text" NAME="telefono[1]"value="">
....fino a...
<INPUT TYPE="text" NAME="nome[5]" value="">
<INPUT TYPE="text" NAME="cognome[5]"value="">
<INPUT TYPE="text" NAME="telefono[5]"value="">
<INPUT TYPE="submit" value="esegui">
...e nel file elabora.php come faccio a "sgomitolare" l'array per ciclare gli inserimenti?
-
No no, non devi specificare l'indice, verrà creato automaticamente dallo script che riceve.
Per lo "sgomitolare" hai inteso bene.
Ciao!
-
...forse ho capito....(speriamo)....
devo mettere <INPUT TYPE="text" NAME="nome[]" value=""> in tutti, supponiamo 5, input text.
così anche per cognome ecc..
Nella pagina elabora.php "sgomitolo" l'array così:
$array_nome = $_POST['nome[]'];
$array_cognome = $_POST['cognome[]'];
ecc...
e poi imposto ed eseguo la query:
$query = "INSERT INTO contatti VALUES ('$array_nome','$array_cognome','$array_telefono')";
$result = mysql_query($query, $myconn) or die("Errore...");
...è corretto? ...vado a provare... :!:
-
Quasi.
La query la devi mettere all'interno del ciclo che usi per scorrere gli array.
Codice PHP:
foreach($_POST['cognome'] as $K=>$Valore){
mysql_query("INSERT INTO contatti VALUES ('$Valore','".$_POST['nome'][$K]."')");
}
Ciao!
-
...ok, risolto!!!
grazie infinite debug!