Foros del Web » Programando para Internet » PHP »

problemas con instruccion INSERT

Estas en el tema de problemas con instruccion INSERT en el foro de PHP en Foros del Web. hola a todos. tengo un problema con un script php que uso para cambiar la contraseña de usuarios. esto lo hago mediante un UPDATE, pero ...
  #1 (permalink)  
Antiguo 28/08/2008, 17:05
 
Fecha de Ingreso: julio-2008
Ubicación: Concepción
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
problemas con instruccion INSERT

hola a todos. tengo un problema con un script php que uso para cambiar la contraseña de usuarios. esto lo hago mediante un UPDATE, pero no me funciona para nada. Lo mismo ocurre cuando quiero hacer un INSERT. la sintaxis de ambas la tomo de "Generar PHP" de MyAdmin. las variables la interpolo de manera que las instrucciones quedan algo asi:

INSERT INTO pphk_users WHERE id='$id'

he probado con todo. desde un simple error en las comillas hasta los privilegios de usuario, pero nada me resulta (de lo apurado lleguè a dejar al usuario con todos los privilegios!!!). el script lo uso desde ActionScript, pero para todos los demas mòdulos trabaja perfectamente. he tratado de imprimir el error en pantalla, pero el motor sql no muestra ninguno.

este es el susodicho ccodigo. si esta algo mal, no tengan piedad en decirmelo. soy mas o menos nuevo en esto de php.




$conexion = mysql_connect("localhost","usuario","password");

if ($conexion)
{
mysql_select_db("usuario",$conexion);

if (isset($_POST['password_actual']) &&
isset($_POST['password_nuevo']) &&
isset($_POST['nombre_usuario']))
{
$usuario = noInject($_POST['nombre_usuario']);
$actual_password = noInject($_POST['password_actual']);
$nuevo_password = noInject($_POST['password_nuevo']);
$actual_password = md5($actual_password);
$nuevo_password = md5($nuevo_password);

. $sql_query = "SELECT * FROM usuarios WHERE nickname='$usuario'";
$resultado = mysql_query($sql_query);

if (mysql_num_rows($resultado)) {

$lista = mysql_fetch_array($resultado);
$idx = $lista["id"];
$mpass = $lista["md5password"];

if ($actual_password == $mpass)
{
$sql_query = "UPDATE usuarios SET md5password='$nuevo_password' WHERE id='$idx'" ;

$resultado = mysql_query($sql_query);
if(mysql_num_rows($resultado))
{
echo "&cambiado=cambio_ok&";
}
} else {
echo "&cambiado=cambio_nopassword&";
}
} else {
echo "&cambiado=cambio_nousuario&";
}
}
mysql_close($conexion);
}
?>


he estado enfrascado en el mismo rollo hace rato, asi qu ahora recurro a ud. para solucionarlo. gracias.


ps: noInject es una funciòn que cree para limpiar los caracteres peligrosos. en todo caso, no produce ningun error ya que la he testeado con varios valores "sucios" o no, y aunque los datos de POST llegue limpios el error empieza al crear el string de la consulta.
  #2 (permalink)  
Antiguo 29/08/2008, 18:23
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: problemas con instruccion INSERT

le faltan los parentesis, pongalos y nos comenta

$sql_query = ("SELECT * FROM usuarios WHERE nickname='$usuario'");

$sql_query = ("UPDATE usuarios SET md5password='$nuevo_password' WHERE id='$idx'");
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 30/08/2008, 00:49
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: problemas con instruccion INSERT

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 30/08/2008, 05:38
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problemas con instruccion INSERT

Te muestra algun error? cual?


Lo de los parentesis, no es necesario, lo que si seria bueno, es que hicieses un echo de la consulta, para ver si te recoge bien los datos de las variables que le pasas.
Pruebalo y nos cuentas.
  #5 (permalink)  
Antiguo 30/08/2008, 07:54
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: problemas con instruccion INSERT

Que tal Absalon, verifica que las consultas no tengan algún error utilizando la función mysql_error():
Código PHP:
$sql_query "SELECT * FROM usuarios WHERE nickname='$usuario'";
$resultado mysql_query($sql_query$conexion) or die("Error de consulta $sql_query:" .mysql_error() ); 
Tambien prueba a modifcar esta línea:
Código PHP:
if (mysql_num_rows($resultado) > 0) {
$lista mysql_fetch_array($resultado);
$idx $lista["id"];
$mpass $lista["md5password"]; 
Y por descartar utiliza nombres diferentes para cada una de tus consultas y el query.



Saludos.
  #6 (permalink)  
Antiguo 31/08/2008, 15:22
 
Fecha de Ingreso: julio-2008
Ubicación: Concepción
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problemas con instruccion INSERT

oh!!. eso era. no se como cambia el codigo ese detalle paero ahora funciona ;) gracias Carlojas.... y todos los demas que postearon soluciones. ;)))
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 18:52.