Foros del Web » Programando para Internet » PHP »

No se actualiza la base de datos.

Estas en el tema de No se actualiza la base de datos. en el foro de PHP en Foros del Web. El problema es que al querer modificar un campo de la base de datos me dice como que se hubiese hecho pero al chequearlo la ...
  #1 (permalink)  
Antiguo 16/05/2010, 14:37
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
No se actualiza la base de datos.

El problema es que al querer modificar un campo de la base de datos me dice como que se hubiese hecho pero al chequearlo la base de datos sigue estando igual.

Este es el codigo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $conexion = mysql_connect ("localhost", "root", "jajaje") or die ("Problemas 1");
  4. mysql_select_db ("phpfacil", $conexion) or die ("Problemas 2 ".mysql_error());
  5. $registros= mysql_query ("update cursos
  6.    set email='$_REQUEST[emailNuevo]'
  7.    where email='$_REQUEST[emailViejo]' " ,
  8.     $conexion ) or die("Problemas 3 ".mysql_error());
  9.  
  10.     echo "El email se modifico correctamente.";
  11.  
  12. ?>

$_REQUEST[emailNuevo] es una variable que me da un email, y $_REQUEST[emailViejo] me da otro email, en la base de datos tengo que actualizar el email , reemplazando el viejo con el nuevo. El problema es similar al de este topico, me aparece que se guardaron los datos pero en la tabla no se actualizan.

Alguien sabe porque puede ser?
  #2 (permalink)  
Antiguo 16/05/2010, 17:27
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: No se actualiza la base de datos.

Por lo que veo el codigo esta bien, deve ser la consulta SQL, intenta hacerlo directamente la consulta en la base de datos cambiando los $_REQUEST por valores
  #3 (permalink)  
Antiguo 16/05/2010, 17:50
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: No se actualiza la base de datos.

Cita:
Iniciado por manumaf Ver Mensaje
Por lo que veo el codigo esta bien, deve ser la consulta SQL, intenta hacerlo directamente la consulta en la base de datos cambiando los $_REQUEST por valores
Hice lo que me dijiste y funciono, entonces probe si los datos que me traia el request eran validos y efectivamente dieron las direcciones de email, ahora probe de pasarlos a una variable primero y despues usar esa variable para cambiar el email pero sigue sin funcionar, no entiendo porque no funciona
  #4 (permalink)  
Antiguo 19/05/2010, 07:55
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: No se actualiza la base de datos.

Cambia $_REQUEST[emailViejo]
Por $_REQUEST['emailViejo']

Le agregue ''
  #5 (permalink)  
Antiguo 19/05/2010, 09:25
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: No se actualiza la base de datos.

No, sigue sin funcionar... Me salen errores si le pongo los ' ' o " " en otro lado, probe asignando a una variable el valor de los request pero tampoco... La verdad que no se poruqe pasara esto ya que si le pongo valores en lugar de variables si me los guarda.
  #6 (permalink)  
Antiguo 21/05/2010, 20:23
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: No se actualiza la base de datos.

Entoces deves tener mal la conexion a la base de datos o algo por el estilo por que el codigo esta bien
  #7 (permalink)  
Antiguo 21/05/2010, 21:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: No se actualiza la base de datos.

mysql_query ("update cursos
set email='$_REQUEST[emailNuevo]'
where email='$_REQUEST[emailViejo]' " ,
$conexion ) or die("Problemas 3 ".mysql_error());

Prueba así, sin poner $registros
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #8 (permalink)  
Antiguo 22/05/2010, 18:53
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: No se actualiza la base de datos.

Ma abajo habras echo un
Código PHP:
echo $resgistros
supongo no?
  #9 (permalink)  
Antiguo 25/05/2010, 20:40
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: No se actualiza la base de datos.

Probe lo que me dijeron ambos y sigue sin funcionar, no logro entender porque no funciona... Este es el codigo completo:
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Base de datos</title>
  4. </head>
  5. <body>
  6.  
  7. <?php
  8.  
  9. $conexion = mysql_connect ("localhost", "root", "jajaje") or die ("Problemas 1");
  10. mysql_select_db ("phpfacil", $conexion) or die ("Problemas 2 ".mysql_error());
  11. $registros = mysql_query ("update cursos
  12.    set email= '$_REQUEST[emailNuevo]'
  13.    where email='$_REQUEST[emailViejo]'" ,
  14.     $conexion ) or die("Problemas 3 ".mysql_error());
  15.  
  16.     $registros;
  17.     echo "El email se modifico correctamente.";
  18.     echo $_REQUEST[emailNuevo];
  19.     echo $_REQUEST[emailViejo];
  20.  
  21. ?>
  22.  
  23. </body>
  24. </html>

en el $_REQUEST[emailNuevo] me devuelve un email nuevo y en el $_REQUEST[emailViejo] me devuelve uno que si esta en la base de datos pero no me los actualiza.

Alguien encuentra el error?
  #10 (permalink)  
Antiguo 25/05/2010, 21:18
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: No se actualiza la base de datos.

Hey creo que se que esta pasando para empezar en la consulta:


Código PHP:
Ver original
  1. mysql_query ("update cursos
  2.   set email= '$_REQUEST[emailNuevo]'
  3.   where email='$_REQUEST[emailViejo]'" ,
  4.     $conexion ) or die("Problemas 3 ".mysql_error());

en donde usas el set email usalo de la siguiente forma

en lugar de:
set email= '$_REQUEST[emailNuevo]'

usalo a si
set email= '$_REQUEST['emailNuevo']'

siempre que estes refiriendote o quieriendo sacar algo de un arreglo dentro de los corchetes usa comillas simples para abstraer el resultado.

Otra cosa que tambien podria estar fallando es que cuando construyes la cadena SQL debes de concatenar con puntos el valor del request no nada mas ponerlo como si fuera parte de la cadena puede ser que por eso te truene la consulta cuando se conecta a la base de datos ya que el valor esta ahi pero no es una de las mejores practicas a la hora de programar una consulta trata de la siguiente forma:


Código PHP:
Ver original
  1. mysql_query ("update cursos
  2.   set email= '". $_REQUEST[emailNuevo] ."'
  3.   where email='". $_REQUEST[emailViejo] ."'" ,
  4.     $conexion ) or die("Problemas 3 ".mysql_error());

si te fijas corte la cadena le concatene el valor que viene del arreglo del $_REQUEST y continuae la cadena y los mismo para cuando seteas el valor del emailViejo checate eso y despues me dices como te fuee :D

Última edición por jcarlosfr; 25/05/2010 a las 21:35
  #11 (permalink)  
Antiguo 25/05/2010, 21:21
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: No se actualiza la base de datos.

Cita:
Iniciado por jcarlosfr Ver Mensaje
Hey creo que se que esta pasando para empezar en la consulta q
Que es lo que esta pasando?
  #12 (permalink)  
Antiguo 25/05/2010, 21:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: No se actualiza la base de datos.

jeje disculpa se me fue el dedo arriba esta editado ya :P
  #13 (permalink)  
Antiguo 25/05/2010, 21:40
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: No se actualiza la base de datos.

Acabo de probar y poniendo:
set email= '$_REQUEST['emailNuevo']'

Me dice esto:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\php\baseDatos\pagina3.php on line 12

y si lo pongo con las comillas dobles al principio y los puntos sigue sin funcionar.

Etiquetas: actualizar
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 19:34.