Foros del Web » Programando para Internet » PHP »

Problema con el UPDATE!

Estas en el tema de Problema con el UPDATE! en el foro de PHP en Foros del Web. Buenas, soy nuevo en esto de php, y estoy haciendo mi primera aplicacion y me estoy volviendo loco. os cuento, tengo un aplicacion con tres ...
  #1 (permalink)  
Antiguo 27/11/2002, 10:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Problema con el UPDATE!

Buenas, soy nuevo en esto de php, y estoy haciendo mi primera aplicacion y me estoy volviendo loco. os cuento, tengo un aplicacion con tres campos: vivienda(primaria), nombre y password. quiero tener una opción en la que el usuario pueda cambiar su password. para ello tengo un form con tres campos:

vivienda, oldpass, newpass. estos campos los envios a otra pagina, en la cual intento hacer el cambio, pero no me sale.

recojo las variables:

$vivienda=$HTTP_GET_VARS ["vivienda"];
$oldpassword=$HTTP_GET_VARS ["oldpassword"];
$newpassword=$HTTP_GET_VARS ["newpassword"];

mysql_query ("UPDATE SET usuarios password='$newpassword' WHERE vivienda='$vivienda' ");

y no me cambia nada! que hago mal?

Gracias!
  #2 (permalink)  
Antiguo 27/11/2002, 10:28
Avatar de Phobos  
Fecha de Ingreso: abril-2001
Ubicación: sentado frente a un pc prestado
Mensajes: 375
Antigüedad: 23 años, 7 meses
Puntos: 2
si no te cambia nada y el codigo funciona (osea no te salen errores) lo mas probable es que el problema este en el

Código PHP:
WHERE vivienda='$vivienda' 
esto no se cumple y por eso no hace el update, te aconsejo revisar los valores de estas variables.

saludos
  #3 (permalink)  
Antiguo 27/11/2002, 10:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
pues no me da errores. he hecho un echo de vivienda, y me muestra la vivienda. yo creo que el error esta en el codigo. sabes como seria el codigo de un update? con sus comprobaciones de si existe la vivienda, y tal?

gracias!
  #4 (permalink)  
Antiguo 27/11/2002, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si estas haciendo consultas a una base de datos .. via PHP .. peudes tener errores de PHP propiamente . pero tambien de SQL (que es tu caso):

Para ver un error de SQL en una consulta usa:
Código PHP:
mysql_query ("UPDATE SET usuarios password='$newpassword' WHERE vivienda='$vivienda' ") or die(mysql_error()); 
Ahí veras el error que da Mysql referente a la sintaxis o el error que corresponda con Mysql.

La sintaxis correcta es:
Código PHP:
mysql_query ("UPDATE usuarios SET password='$newpassword' WHERE vivienda='$vivienda' "); 
Y Recuerda que mysql_query() es la funcion de PHP para dar salida a una sentencia SQL de Mysql .. así q si tienes problemas con la sintaxis o parametros de SQL .. usa el manual de Mysql .. Eso, junto con el mysql_error() te ayudará a identificar errors de SQL más rápidos ..

Un saludo,
  #5 (permalink)  
Antiguo 27/11/2002, 10:55
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Antetodo muchas gracias por vuestra ayuda!! el error que me da es el siguiente!!

You have an error in your SQL syntax near 'SET usuarios password='12345' WHERE vivienda='A1' ' at line 1
  #6 (permalink)  
Antiguo 27/11/2002, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ya te puse la solución ... pruebalo:

la tabla (su nombre) va antes del SET .. tal cual te puse ...

Un saludo,
  #7 (permalink)  
Antiguo 27/11/2002, 11:09
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Gracias Cluster!! Ya me cambia el password. ahora tengo otra duda, recuerda que soy nuevo en esto y no tengo ni idea. como compruebo si se corresponde la vivienda con la contraseña? pq en el caso ese, o en el caso de que la contraseña antigiua no sea valida no tiene que dejarme cambiar el password.

puedes ayudarme?

gracias
  #8 (permalink)  
Antiguo 27/11/2002, 11:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes hacerlo de dos formas.

1) .. haces una consulta tipo SELECT con la clausula WHERE password='$passwordoriginal' .. ahí si obtienes algun resultado ya sabes que es la correcta y puedes continuar con tu UPDATE como lo tenias .. si no es correcta lo mandas a otro sitio y le dices q no es correcta.

2) Haces todo de un viaje sobre un update "mas condicional" tipo:

Código PHP:
mysql_query ("UPDATE usuarios SET password='$newpassword' WHERE vivienda='$vivienda' AND  password='$passwordoriginal'"); 
Luego con mysql_affected_rows() miras si se realizó el Update (si se cumplen ambas condiciones deberia ejecutarse el UPdate ..) Si se ejecutó (dio un resultado) .. dices "ok .. su pass fue cambiada' si no arrojó ningun resultado es porqué no se cumplieron las condiciones .. en tal caso le invitas al usuario a q juegue otra vez a la ruleta xD ..

Usa el manual de PHP y el de Mysql .. y ves practicando.. lee lo que hacen las funciones que te comento ..

..."El no saber no es escusa para no aprender "... decia un proverbio chino o vete a saber xD

Un saludo,

Última edición por Cluster; 27/11/2002 a las 11:35
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 21:45.