Foros del Web » Programando para Internet » PHP »

Problema en un update de una tabla

Estas en el tema de Problema en un update de una tabla en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema porque no se como poder hacer un update de varias filas de una tabla. La question es que tengo ...
  #1 (permalink)  
Antiguo 26/02/2008, 07:54
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema en un update de una tabla

Hola a todos! Tengo un problema porque no se como poder hacer un update de varias filas de una tabla. La question es que tengo en un formulario web una tabla
con varias filas donde todos los campos son textareas. los modifico y luego en el submit del form quiero que haya una sentencia update que actualice la base de datos. pero ... ¿Como hago para ir actualizando fila a fila si solo envio por submit una vez los valores de dichos textarea? Pense en recorrerlo con un do while
.
La sentencia sería asi...

$Actualiza = "Update table incidencia
set solucionado = 1,
accionsolucion = '".$_POST['textarea3']." ,
Fecha_solucion= '".$_POST['Data'].",
admin= '".$_POST['administrador']."
where Id_Incid ='".$_POST['textfield2']."";

Espero que me puedan echar una mano.Reciban las gracias anticipadas.
  #2 (permalink)  
Antiguo 02/06/2008, 13:18
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 45
Antigüedad: 15 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:33.