Foros del Web » Programando para Internet » PHP »

serio problema al actualizar los datos de la base

Estas en el tema de serio problema al actualizar los datos de la base en el foro de PHP en Foros del Web. buenas!!! tengo un serio problema al hacer update a la base de datos explico: realizo una consulta y presento en pantalla y todo de maravilla ...
  #1 (permalink)  
Antiguo 20/03/2009, 16:24
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Pregunta serio problema al actualizar los datos de la base

buenas!!!

tengo un serio problema al hacer update a la base de datos

explico:

realizo una consulta y presento en pantalla y todo de maravilla
cargo un formulario para hacer modificaciones y hasta ahi todo bien
el dato es que no hago cambio a todos los campos
en otras palabras

modifico lo que hace pero no el nombre

segun tengo entendido si no cargo con input una variable esta no es alterada al momento de hacer el update del registro

pero... no pasa asi, porque si no pongo un campo hidden que haga el respaldo de ese dato que no presento este se pierde

¿porque?

haber si alguien me puede ayudar

un saludo!!

p.d. por error mio no me fije en donde postee, algun moderador que lo mueva a base datos por favor!!! con una disculpa de antemano por el error
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #2 (permalink)  
Antiguo 20/03/2009, 16:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: serio problema al actualizar los datos de la base

Depende de cómo haces el UPDATE, ya que si pones el campo en vacío '', lógicamente que se guardará con ese valor .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/03/2009, 16:39
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Respuesta: serio problema al actualizar los datos de la base

buenas!!

pues mi update lo hago asi:

Código:
$sSQL = "UPDATE adelantos SET ID_Adelanto = '$ID_Adelanto' , nombre = '$nombre' , sexo = '$sexo' , grupo = '$grupo' , rug = '$rug' ... etc....
el caso es que si no pongo el nombre, sexo, grupo y todo lo demas que NO uso, los datos se pierden

y hasta donde tengo entendido o mejor dicho me han enseñado
aunque tenga mil campo si solo quiero actulizar uno solo devo poner ese uno sin mas ni mas

no se si estoy en lo correcto ??

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #4 (permalink)  
Antiguo 20/03/2009, 16:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: serio problema al actualizar los datos de la base

Sí, estás en lo correcto, pero en tu caso, tú no colocas un sólo campo, colocas todos los campos, así que estén vacías o no las variables, se actualizarán. Lo que debes hacer es usar la función empty() para saber si las variables están vacías y en tal caso no incluirlas en la consulta de actualización.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/03/2009, 16:45
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Respuesta: serio problema al actualizar los datos de la base

Buenas!!

si, los estoy colocando ahorita porque fue la unica manera de dejar de perder los datos

el caso es ahora tengo que hacer modificaciones y la verdad me estoy llenando de codigo inservible

porque la cosa que tengo que hacer es consultar en la base, presentar TODOS los datos en la pantalla y poder MODIFICAR solo 3 datos de los mas de 30 que tengo

se supone que por presentarlos no se altera su contenido, o si?
y supuestamente solo tendria que hacer el update de esos 3 campos nada mas, basandome en el ID que por obvio si tengo que igualar con el campo hidden

pero el nombre, edad, sexo y demas que no modifico o lo pongo o se me borra

algun idea de que estoy haciendo mal??

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #6 (permalink)  
Antiguo 20/03/2009, 16:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: serio problema al actualizar los datos de la base

En teoría, si colocas sólo los 3 campos que quieres actualizar en la sentencia UPDATE sólo actualizará esos 3 campos.

El problema es que en el ejemplo que pusiste estás poniendo todos los campos, y por eso hay problemas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 20/03/2009, 17:08
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Respuesta: serio problema al actualizar los datos de la base

buenas!!

si pero esa fue la unica manera que encontre de no perder los datos
porque si solo ponia el que actualizaba me borraba todo lo demas :s

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #8 (permalink)  
Antiguo 20/03/2009, 17:53
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: serio problema al actualizar los datos de la base

Cita:
Iniciado por HalconVigia Ver Mensaje
buenas!!

si pero esa fue la unica manera que encontre de no perder los datos
porque si solo ponia el que actualizaba me borraba todo lo demas :s

un saludo!!
en donde encontraste eso????

el update actualizará sólo los campos que quieras actualizar,los demás se mantendrán intactos,salvo que sea campo de tipo fecha timestamp, ahi si se actualiza automáticamente ante cualquier cambio en el registro.

la sintáxis básica del UPDATE es

Código PHP:
UPDATE t SET c1='nuevo_valor1'c2='nuevo_valor2',... WHERE id_t='x'
donde t=tabla;c1,c2 son los campos que deseas actualizar el id_t es el identificador único del registro, en otras palabras el PK de tu tabla., ahora si lo que quieres es actualizar los campos c1,c2,etc de todos los registros, entonces no pongas ninguna condicional.

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 13:08.