Foros del Web » Programando para Internet » PHP »

como hacer un UPDATE correcto

Estas en el tema de como hacer un UPDATE correcto en el foro de PHP en Foros del Web. Buenos dias a todos. Tengo un pequeño problema. Como harias un UPDATE correcto?. Resulta que tengo una base de datos con varios campos que puede ...
  #1 (permalink)  
Antiguo 14/09/2012, 04:54
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Exclamación como hacer un UPDATE correcto

Buenos dias a todos.
Tengo un pequeño problema. Como harias un UPDATE correcto?.
Resulta que tengo una base de datos con varios campos que puede introducir un usuario siempre y cuando yo, desde un formulario privado inserte una contraseña ($contrasena) y una clave valida ($id) para cada usuario.
Una vez que reciba estas dos el usuario, podra llenar los campos que estan sin cubrir que conforman su id. Esto lo hago con este UPDATE. ( DECIR QUE HE INTRODUCIDO UN FORMULARIO PREVIO QUE RECOJA TODAS LAS VARIABLES DE SU REGISTRO EN LA BASE DE DATOS)......

mysql_query("UPDATE establecimientos SET id='$_POST[id]', imagen='".$nombre."', titulo='$_POST[titulo]', marca='$_POST[marca]', direccion='".$_POST[direccion]."', numero='".$_POST[numero]."',localidad= '".$_POST[localidad]."', provincia='".$_POST[provincia]."', telefono='".$_POST[telefono]."', d1='".$_POST[d1]."', d2='".$_POST[d2]."', d3='".$_POST[d3]."', d4='".$_POST[d4]."', d5='".$_POST[d5]."', web='".$_POST[web]."', carta='".$_POST[carta]."', tipodecocina='".$_POST[tipodecocina]."', horarios='".$_POST[horarios]."', descanso='".$_POST[descanso]."', ninos='".$_POST[ninos]."', pp='".$_POST[pp]."', wifi= '".$_POST[wifi]."', a12='".$_POST[a12]."', aire='".$_POST[aire]."', terraza='".$_POST[terraza]."', vistas='".$_POST[vistas]."' , mascota='".$_POST[mascota]."', fecha= ".date("Ymd").", contrasena= '".$_POST[contrasena]."', mes='$_POST[mes]' WHERE contrasena='".$_POST[contrasena]."' AND id='".$_POST[id]."' ");


Pero el problema viene cuando quiero SOLO ACTUALIZAR ALGUNOS CAMPOS SIN MODIFICAR O VARIAR YA LOS QUE ESTAN YA INSERTADOS.
Pongamos un ejemplo: quiero que el usuario varie los campos 'd1','d2','d3','d4' y 'd5' y que pueda hacerlo SIEMPRE Y CUANDO valide su clave y su contraseña.
Lo primero que hago para eso sea posible, seria un formulario que recoge las variables
que van a introducirse como actualizadas en el registro ya creado. Es decir, recojo
$d1, $d2, $d3, $d4, $d5 y para que estas variables sean recogidas correctamente en el formulario, recojo tambien $contrasena, $id.
Y lo envio a un script donde añade este UPDATE.......

mysql_query("UPDATE establecimientos SET id='$_POST[id]', d1='".$_POST[d1]."', d2='".$_POST[d2]."', d3='".$_POST[d3]."', d4='".$_POST[d4]."', d5='".$_POST[d5]."', contrasena= '".$_POST[contrasena]."' WHERE contrasena='".$_POST[contrasena]."' AND id='".$_POST[id]."' ");


echo ". La modificacón de sus datos ha sido satisfactoria ......

Lo que sucede con este UPDATE, es se insertan estas nuevos datos en los campos d1,d2,d3,d4,d5 ya que ha introducido el usuario la contraseña y la clave correcta de su registro PERO EN LOS DEMAS CAMPOS DE SU REGISTRO me borra TODA la informacion que tenia en cada uno de los campos, y en ese registro solo se ven los ultimos campos modifiados con la contraseña y el id.
Es decir, todos los campos aparecen vavios excepto los d1,d2,d3,d4,d5 y contraseña y la id.
Como me aconsejarias tu hacer un UPDATE CORRECTO para ciertos campos sin modificar el resto de los campo de un registro de una base de datos ??.
agradezco mucho tus opiniones
  #2 (permalink)  
Antiguo 14/09/2012, 10:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: como hacer un UPDATE correcto

Lo que yo hago es actualizar todos los datos.
En los que hay cambios actualizo los cambios y en los que no hay cambios pues actualizo pero introduciendo los datos que ya estaban.
Salu2.
  #3 (permalink)  
Antiguo 14/09/2012, 10:08
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: como hacer un UPDATE correcto

Muchas gracias por responderme.
Peo no hay maner alguna de actualizar algunos datos recogidos en variables y dejar los otros datos que tengo en los campos de la base de datos como fijos o inalterables?.
Muchas gracias
  #4 (permalink)  
Antiguo 14/09/2012, 10:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: como hacer un UPDATE correcto

Pues con el update te deberia actualizar solo los datos que envias no entiendo por q te deja los demas en blanco.
  #5 (permalink)  
Antiguo 14/09/2012, 10:54
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: como hacer un UPDATE correcto

creo q el problema esta en el .$_[POST]. Ahora mismo estoy haciendo pruebas con ello.
Muchas gracias max
  #6 (permalink)  
Antiguo 14/09/2012, 11:18
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: como hacer un UPDATE correcto

Efectivamente Max, el problema estaba en el $_POST y en los puntos que se anteponen o posponen a esta palabra.
La secuencia estaba bien formulada pero no los puntos en las palabras.
Te agradezco que me hayas orientado Max.
Un saludo
  #7 (permalink)  
Antiguo 14/09/2012, 14:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: como hacer un UPDATE correcto

Un saludo normalmente uno imprime un echo del sql para ver que le esta mandando a la bd, es bastate util hacerlo.

Etiquetas: update
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 15:37.