
02/06/2008, 13:18
|
| | Fecha de Ingreso: junio-2008 Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 16 años, 10 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 |