Vorrei inserire diversi record da uno stesso form (con un click). Ho fatto e funziona. Il problema è che nell'esempio che posto c'è la possibilità di inserire 3 record e sempre si inseriscono 3 records. Vorrei invece eventualmente inserire solo 2, ad esempio quando l'ultimo set dei campi rimane vuoto. In pratica, si dovrebbe inserire solo il numero dei record compilati, ignorando quelli lasciati in bianco nel form.
Ecco il form HTML
codice:
<form action="prova.php" method="post">
<p><b>1</b><br />
Nome <input name="name[]" type="text" id="name[]">Texto <input name="texto[]" type="text" id="texto[]"></p>
<p><b>2</b><br />Nome <input name="name[]" type="text" id="name[]">Texto <input name="texto[]" type="text" id="texto[]"></p>
<p><b>3</b><br />Nome <input name="name[]" type="text" id="name[]">Texto <input name="texto[]" type="text" id="texto[]"></p>
<p><input type="submit" name="Submit" id="Submit" value="Submit" /></p></form>
Qui il codice PHP dell'Insert nel MySQL
codice:
if (isset($_POST['Submit'])) { //se submit inviato
$con = mysql_connect("HOST","USER","PASSWORD");
if (!$con)
{
die('No ho potuto connetermi: ' . mysql_error());
}
mysql_select_db("claretianum_db1", $con);
foreach($_POST['name'] as $row=>$Name)
{
$name=mysql_real_escape_string($Name);
$texto=mysql_real_escape_string($_POST['texto'][$row]);
$sql="INSERT INTO prova(nome, texto)VALUES('$name', '$texto')" or die(mysql_error());
$result = mysql_query($sql, $con) or die(mysql_error());
}
// if successfully updated.
if($result){
echo "$row record inseriti.<br/>";
}
else {
echo "ERROR";
}
} //fine controllo se submit inviato