Para más información, esto es todo lo que hace el script desde que lo envío por método POST (por cierto, no he indicado antes que hay un un hidden en un formulario que abarca toda la tabla antes citada con el id_producto)
El código sería este:
Código PHP:
$sel_1 = "SELECT id_estadillo FROM estadillo WHERE id_producto='" . $_POST["id_producto"] . "'";
$que_1 = mysql_query ($sel_1, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $sel_1 . '<br />');
$x = mysql_fetch_array ($que_1);
$n = mysql_num_rows ($que_1);
if ($n == 0)
{
$ins = "INSERT INTO estadillo(id_producto) VALUES('" . $_POST["id_producto"] . "')";
mysql_query ($ins, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $ins . '<br />');
}
for ($i = 0; $i < 31; $i++)
{
for ($j = 0; $j < 12; $j++)
{
$upd = "UPDATE estadillo SET " . $i . "_" . $j . "='" . $_POST["cols"][$j][$i] . "' WHERE id_estadillo='" . $x["id_estadillo"] . "'";
mysql_query ($upd, $dbh) or die ('I cannot execute the query because: ' . mysql_error (E_ALL) . '<br />And the query is: ' . $upd . '<br />');
}
}
Me resulta curioso que el hacer un echo después de la última query con la variable $upd, ya que me muestra la consulta con el id_estadillo nulo...

Y es bastante raro, ya que si examinas los registros del phpMyAdmin, lo único que hace el script correctamente es insertar el id_estadillo (un autonumérico que se genera automáticamente) y el id_producto, (que paso como hidden desde la página anterior)
¿Alguna idea?
PS: Muchas gracias a todos por vuestro tiempo.