Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2009, 02:28
Koden
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 20 años
Puntos: 1
Problema con inputs y arrays

Saludos a todos.

Veréis, estoy haciendo una página que tiene que contener una tabla con los doce meses y 31 filas (que representan sus días)

Como la tabla en sí representa un insert de 372 registros seguidos (un poco difícil de controlar si falla algo) opté por generar los campos de manera dinámica, tal que así:

Código PHP:
<table cellspacing="0" summary="table" class="broom_table">
<?php
  $dias 
= array ();

  for (
$i 0$i <= 31$i++)
    
$dias[$i] = $i;

  
$nombres = array ("Dia\Mes","enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
?>
  <thead><tr><?php for ($r_1 0$r_1 count ($nombres); $r_1++){?><th><?php echo $nombres[$r_1];?></th><?php }?></tr></thead>
  <tbody>
  <?php for ($r_1 1$r_1 count ($dias); $r_1 ++){?>
    <tr<?php if ($r_1 &#37; 2 == 0){echo " class=\"odd\"";}else{echo " class=\"even\"";}?>>
    <?php $aux 0;?>
    <?php for ($r_2 0$r_2 count ($nombres); $r_2++){?>
    <?php if ($aux == 0){?>
      <td><?php echo $r_1;?></td>
    <?php }else{?>
    <?php
      $sel_2 
"SELECT * FROM estadillo WHERE id_producto='" $_GET["id_producto"] . "'";
     
$que_2 mysql_query ($sel_2$dbh) or die ('I cannot execute the query because: ' mysql_error () . '<br />And the query is: ' $sel_2 '<br />');
     
$x mysql_fetch_row ($que_2);
    
?>
      <td><input type="text" name="cols[<?php echo $r_1;?>][<?php echo $r_2;?>]" value="<?php echo $x[$r_2][$r_1];?>" size="3" /></td>
   <?php }?>
   <?php $aux ++;?>
   <?php }?>
  </tr>
  <?php $i++;}?>
  <tr><td colspan="13"><input type="submit" value="Guardar" /></td></tr>
</tbody>
</table>
Después, en el formulario que recoge los inputs (mediante el método POST) hago un script así:

Código PHP:
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 />');
  }

He comprobado bastante asombrado, que me falla al intentarlo una vez, pero que si refresco la página cuando me da el error, me hace la inserción sin problema... Lo cual me es un poco incómodo, porque sigue sin funcionar como yo quiero... ¿Alguien sabría decirme qué es lo que estoy haciendo mal?

Muchas gracias a todos por descontado y un saludo.

Última edición por Koden; 23/02/2009 a las 04:01