Foros del Web » Programando para Internet » PHP »

Actualizar solo los campos necesarios

Estas en el tema de Actualizar solo los campos necesarios en el foro de PHP en Foros del Web. Campos de Tabla: nombre / descripcion / foto Codigo PHP Código PHP: <?  $query  =  "UPDATE FOTOS SET " ;      $query  .= "nombre = '" . $_POST [ "enombre" ...
  #1 (permalink)  
Antiguo 24/01/2011, 18:31
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Actualizar solo los campos necesarios

Campos de Tabla: nombre / descripcion / foto

Codigo PHP

Código PHP:
<? 
$query 
"UPDATE FOTOS SET ";
    
$query .="nombre = '".$_POST["enombre"]."' ";
    
$query .=",descripcion = '".$_POST["edescripcion"]."' ";
    
$query .=",foto = '".$_FILES["eMIfoto"]["name"]."' ";
    
$query .="WHERE id = '".$_POST["id"]."' ";
?>
Junto con agradecerles el tiempo me explico.
Estoy haciendo un programa para mi liceo, y bueno me tope con este problema.
Ocurre que estoy haciendo un ejercicio en el cual agrego y modifico a antojo, hasta ahi todo bien, ahora se me presento el problema que si por ejemplo solo cambio el nombre el campo de archivo foto tambien se actualiza, quedando vacio.
En los textboxes puedo traer en value ="" los registros pero en el campo de archivo el valur no funciona :(

<input type="file" name="eMIfoto[]" />

Hay forma de solo actualizar los campos que solo se hayan cambiado?
[URL="http://www.forosdelweb.com/f18/solo-cambiar-datos-mysql-que-haigan-llenado-formulario-640396/"]Aqui [/URL] pude encontrar algo similar pero no supe como aplicarlo.

Desde ya muchas gracias!.
  #2 (permalink)  
Antiguo 24/01/2011, 19:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Actualizar solo los campos necesarios

Recuerda que update unicamente hace cambios a los campos que listas separados por coma y que preceden a SET asi que lo único que tienes que hacer es agregar a tu variable $query unicamente los campos que realmente quieres que cambien.
__________________
Saludos.
  #3 (permalink)  
Antiguo 24/01/2011, 20:23
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Actualizar solo los campos necesarios

Muchas gracias por responder mira yo queria realizar algo como lo que propone un usuario de esta forma:

Código PHP:
if($campo1!="")$sql.="campo1=$campo1,";
if(
$campo2!="")$sql.="campo2=$campo2,";
if(
$campo3!="")$sql.="campo3=$campo3,";
if(
$campo4!="")$sql.="campo4=$campo4,";
if(
$sql!="")$query="update tabla set ".substr($sql,0,strlen($sql))." where condicion"
Si te das cuenta va comprobando para solo guardar los cambios en los modificados.
  #4 (permalink)  
Antiguo 29/01/2011, 10:59
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: Actualizar solo los campos necesarios

Creo que llegue tarde :S

Pero como dice el dicho.... mejor tarde que nunca ^^

Corrigiendo tu forma....
Código PHP:
$campos "";
if(
$campo1 != ""$campos.= "campo1 = '$campo1'";
if(
$campo2 != ""$campos.= "campo2 = '$campo2'";
if(
$campo3 != ""$campos.= "campo3 = '$campo3'";
if(
$campo4 != ""$campos.= "campo4 = '$campo4'";
if(
$campos != ""$query "update tabla set ".substr($campos0strlen($campos) - 2)." where condicion"
Otra forma....
Código PHP:
$campos = array();
if(
$campo1 != ""$campos[] = "campo1 = '$campo1'";
if(
$campo2 != ""$campos[] = "campo2 = '$campo2'";
if(
$campo3 != ""$campos[] = "campo3 = '$campo3'";
if(
$campo4 != ""$campos[] = "campo4 = '$campo4'";
if(
count($campos) > 0$query "update tabla set ".implode(", "$campos)." where condicion"
Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog

Etiquetas: actualizar, mysql
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 22:03.