Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/06/2008, 13:18
josofol
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Problema en un update de una tabla

Hola Oscarinho

Si tu tabla esta limitada, es decir, solo hay 10 filas con cada campo(solucionado, accionsolucion,...), la solución más rápida y eficiente es hacer 10 update ya que veo que dependen del id por el where y por tanto, la actualización se hace fila a fila. Antes de generarlos, tener en cuenta si los campos a insertar están vacios o llenos (isset(), empty()). Con un do while también se puede hacer pero te lo recomiendo en el caso en que no este limitado. Es decir, que el usuario pueda decidir a traves de un textbox el número de filas.

Ah! Y si son más de 10 filas, por ejemplo 30 filas, otra solución es ver el textfield2 que es tu id. Para ello:

<?php
//te creas por cada campo un array. Yo lo hago con el textfield2. Viendo el update, serán 5.
$array_tf2=array();
$array_s=array();
$array_as=array();
$array_fs=array();
$array_adm=array();

$num_filas=30;

for($i=0;$i<$num_filas;$i++)
{

if((isset($_POST['textfield2']) && isset($_GET['textfield2'])!="") && (isset($_POST['textarea3']) && isset($_GET['textarea3'])!="") && /*resto de campos*/)
$array_tf2[$i]=$_POST['textfield2'];
//resto de campos
}

//Tras esto, si solo hay 15 filas rellenas, tienes que tener 15 valores en cada uno de los //arrays. Por tanto, tomando como referencia el array_tf2 tendríamos:
for($j=0;$j<count($array_tf2);$j++)
{
$Actualiza = "Update table incidencia
set solucionado = '.$s['$j'].',
accionsolucion = '".$as[$j]." ,
Fecha_solucion= '".$fs[$j].",
admin= '".$adm[$j]."
where Id_Incid ='".$array_tf2[$j]."";
}

?>

Ya me comentas.

Un saludo

Última edición por josofol; 02/06/2008 a las 13:51