Ver Mensaje Individual
  #16 (permalink)  
Antiguo 18/07/2009, 13:13
Avatar de juaniquillo
juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: Actualizar Multiples Registros

ok. Me dio un poco de problemas como tú lo tenias así que hice una tabla nueva. Tratare de usar las funciones de DW lo mas posible. Lo primero, esta es mi tabla al principio:

Código php:
Ver original
  1. <table width="110%" border="0" cellpadding="5" cellspacing="1" bgcolor="#CCCCCC">
  2.   <tr>
  3.     <th background="imagen/barra.png" class="p" scope="col">Id</th>
  4.     <th background="imagen/barra.png" class="p" scope="col">Numero</th>
  5.     <th background="imagen/barra.png" class="p" scope="col">Nombre </th>
  6.     <th background="imagen/barra.png" class="p" scope="col">Dpto</th>
  7.     <th background="imagen/barra.png" class="p" scope="col">Suspension</th>
  8.     <th background="imagen/barra.png" class="p" scope="col">Vacaciones</th>
  9.     <th background="imagen/barra.png" class="p" scope="col">Dias</th>
  10.     <th background="imagen/barra.png" class="p" scope="col">Fecha</th>
  11.     <th background="imagen/barra.png" class="p" scope="col">Hora</th>
  12.     <th background="imagen/barra.png" class="p" scope="col">Regresa</th>
  13.   </tr>
  14.   <?php if ($totalRows_Recordset1 > 0) { // Show if recordset not empty ?>
  15.     <?php do { ?>
  16.       <tr>
  17.         <?php if ($totalRows_Recordset1 > 0) { // Show if recordset not empty ?>
  18.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['id']; ?>
  19.             <input name="id" type="hidden" value="<?php echo $row_Recordset1['id']; ?>"  />          </th>
  20.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['num']; ?></th>
  21.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['nombre']; ?></th>
  22.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['dpto']; ?></th>
  23.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><input type="checkbox" name="suspencion" value="suspencion" id="suspencion" /></th>
  24.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><input type="checkbox" name="vacacciones" value="vacacciones" id="vacacciones" /></th>
  25.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  26.             <input type="text" name="dias" size="3" />
  27.           </span></th>
  28.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  29.             <input type="text" name="fecha_ini" size="12" />
  30.           </span></th>
  31.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  32.             <input type="text" name="hora" size="5" />
  33.           </span></th>
  34.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  35.             <input type="text" name="fecha_fin" size="12" />
  36.           </span></th>
  37.           <?php } // Show if recordset not empty ?>
  38.       </tr>
  39.       <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
  40.     <?php } // Show if recordset not empty ?>
  41.  
  42. </table>

como puedes ver he agrrgado un 'Show if recordset not empty' para que no se muestren resultados si no hubieran records. También incluí un campo oculto para el id. Con esa tabla hice este insert:

Código php:
Ver original
  1. $editFormAction = $_SERVER['PHP_SELF'];
  2. if (isset($_SERVER['QUERY_STRING'])) {
  3.   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  4. }
  5.  
  6. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  7.   $updateSQL = sprintf("UPDATE tabla_suspencion SET fecha_ini=%s, hora=%s, fecha_fin=%s, suspencion=%s, vaccaciones=%s WHERE id=%s",
  8.                        GetSQLValueString($_POST['fecha_ini'], "text"),
  9.                        GetSQLValueString($_POST['hora'], "text"),
  10.                        GetSQLValueString($_POST['fecha_fin'], "text"),
  11.                        GetSQLValueString($_POST['suspencion'], "text"),
  12.                        GetSQLValueString($_POST['vacacciones'], "text"),
  13.                        GetSQLValueString($_POST['id'], "int"));
  14.  
  15.   mysql_select_db($database_conn_pruebas_local, $conn_pruebas_local);
  16.   $Result1 = mysql_query($updateSQL, $conn_pruebas_local) or die(mysql_error());
  17. }

lo próximo es ponerle corchetes '[]' a los nombres de los campos para que envíen el contenido como array y se recibe con un foreach. Al final queda así:

Código php:
Ver original
  1. <?php
  2. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  3.   foreach($_POST['id'] as $key => $value){
  4.       $updateSQL = sprintf("UPDATE tabla_suspencion SET fecha_ini=%s, hora=%s, fecha_fin=%s, suspencion=%s, vaccaciones=%s WHERE id=%s",
  5.                            GetSQLValueString($_POST['fecha_ini'][$key], "text"),
  6.                            GetSQLValueString($_POST['hora'][$key], "text"),
  7.                            GetSQLValueString($_POST['fecha_fin'][$key], "text"),
  8.                            GetSQLValueString($_POST['suspencion'][$key], "text"),
  9.                            GetSQLValueString($_POST['vacacciones'][$key], "text"),
  10.                            GetSQLValueString($value, "int"));
  11.    
  12.       mysql_select_db($database_conn_pruebas_local, $conn_pruebas_local);
  13.       $Result1 = mysql_query($updateSQL, $conn_pruebas_local) or die(mysql_error());
  14.     }
  15.  
  16.  
  17. ///////////////////////////////////////////////
  18.  
  19.  
  20. }?>
  21.  
  22.  
  23.  
  24. <table width="110%" border="0" cellpadding="5" cellspacing="1" bgcolor="#CCCCCC">
  25.   <tr>
  26.     <th background="imagen/barra.png" class="p" scope="col">Id</th>
  27.     <th background="imagen/barra.png" class="p" scope="col">Numero</th>
  28.     <th background="imagen/barra.png" class="p" scope="col">Nombre </th>
  29.     <th background="imagen/barra.png" class="p" scope="col">Dpto</th>
  30.     <th background="imagen/barra.png" class="p" scope="col">Suspension</th>
  31.     <th background="imagen/barra.png" class="p" scope="col">Vacaciones</th>
  32.     <th background="imagen/barra.png" class="p" scope="col">Dias</th>
  33.     <th background="imagen/barra.png" class="p" scope="col">Fecha</th>
  34.     <th background="imagen/barra.png" class="p" scope="col">Hora</th>
  35.     <th background="imagen/barra.png" class="p" scope="col">Regresa</th>
  36.   </tr>
  37.   <?php if ($totalRows_Recordset1 > 0) { // Show if recordset not empty ?>
  38.     <?php do { ?>
  39.       <tr>
  40.         <?php if ($totalRows_Recordset1 > 0) { // Show if recordset not empty ?>
  41.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['id']; ?>
  42.             <input name="id[]" type="hidden" value="<?php echo $row_Recordset1['id']; ?>"  />          </th>
  43.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['num']; ?></th>
  44.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['nombre']; ?></th>
  45.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><?php echo $row_Recordset1['dpto']; ?></th>
  46.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><input type="checkbox" name="suspencion" value="suspencion" id="suspencion" /></th>
  47.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><input type="checkbox" name="vacacciones[]" value="vacacciones" id="vacacciones" /></th>
  48.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  49.             <input type="text" name="dias[]" size="3" />
  50.           </span></th>
  51.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  52.             <input type="text" name="fecha_ini[]" size="12" />
  53.           </span></th>
  54.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  55.             <input type="text" name="hora[]" size="5" />
  56.           </span></th>
  57.           <th background="imagen/barra.png" bgcolor="#FFFFFF" class="p" scope="col"><span class="t">
  58.             <input type="text" name="fecha_fin[]" size="12" />
  59.           </span></th>
  60.           <?php } // Show if recordset not empty ?>
  61.       </tr>
  62.       <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
  63.     <?php } // Show if recordset not empty ?>
  64.  
  65. </table>

Ahora se actualizan todos los campos. Si tienes algún problema de dices.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...