Bueno, pues por fin he dado en el clavo y he conseguido solucionarlo. El tema está en utilizar los corchetes, pero asignándole un número de serie consecutivo que luego evaluaría el loop cuando inserta (o actualiza) los registros.
Según el código de muestra que colgué al principio y con las modificaciones que he hecho, la cosa quedaría así:
prueba.php
Código PHP:
<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
for($key=0;$key<sizeof($_POST['input']);$key++){
$insertSQL = sprintf("INSERT INTO tabla (input, check) VALUES (%s, %s)",
GetSQLValueString($_POST['input'][$key], "int"),
GetSQLValueString(isset($_POST['check'][$key]) ? "true" : "", "defined","1","0"));
mysql_select_db($database_db, $db);
$Result1 = mysql_query($insertSQL, $db) or die(mysql_error());
}
}
?>
form.html
Código HTML:
<html>
<body>
<form id="form" name="form" method="post" action="prueba.php"
<table>
<tr>
<td>input 1</td>
<td>
<input type="text" name="input[]" value="" />
</td>
<td align="center" valign="middle">
<!-- Al nombre de cada check le asigno un número de serie correlativo comenzando por 0" -->
<input name="check[0]" type="checkbox" value="1"/>
</td>
</tr>
<tr>
<td>input 2</td>
<td>
<input type="text" name="input[]" value="" />
</td>
<td align="center" valign="middle">
<input name="check[1]" type="checkbox" value="1"/>
</td>
</tr>
<tr>
<td>input 3</td>
<td>
<input type="text" name="input[]" value="" />
</td>
<td align="center" valign="middle">
<input name="check[2]" type="checkbox" value="1"/>
</td>
</tr>
<tr>
<input type="hidden" name="MM_insert" value="form" />
<input type="submit" value="Insertar" />
</tr>
</table>
</form>
</body>
</html>
Salvo que me haya equivocado a la hora de copiar y pegar código, la cosa funciona, ¡probado!
Gracias por vuestra ayuda