Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema al comprobar datos

Estas en el tema de Problema al comprobar datos en el foro de Mysql en Foros del Web. Hola! En estos momentos me encuentro modificando la página de perfil de mi web. Mas concretamente en el apartado "cambiar datos" que lo que hace ...
  #1 (permalink)  
Antiguo 24/05/2012, 13:43
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 3 meses
Puntos: 2
Problema al comprobar datos

Hola!

En estos momentos me encuentro modificando la página de perfil de mi web. Mas concretamente en el apartado "cambiar datos" que lo que hace es cambiar los datos que ya existen en la base de datos por los que el usuario pongo en un simple formulario.

El problema es al comprobar si el usuario a introducido un "nick" o "email" que ya existe en la base de datos, omitiendo el suyo (es decir, que por ejemplo pueda cambiar el nick pero si el email no quiere pues que no se cambie)

Les dejo mi código simplificado y con algunas anotaciones
Código PHP:
$id $_POST[id]; // Id usuario
$nick $_POST[nick]; // Nick usuario
$email $_POST[email]; // Email del usuario
$pass1 $_POST[pass1]; // Contraseña de su cuenta
$pass2 $_POST[pass2]; // Aqui estaría la nueva contraseña, pero no nos hace falta, es solo para determinar los pasos a seguir

if( ($_POST[nick] == '') or ($_POST[email] == '') or ($_POST[pass1] == '') ){ // Comprobamos que no vengan vacios... si vienen redirigimos a la página mostrando error
Header "Location: http://$linkweb/perfil.php?error=1");
}else{ 
// Si no, continuamos...
if ($pass2 == ''){ // Si el usuario no a introducido una contraseña nueva para su cuenta, continuamos...

$pass1 md5($pass1); // Encrpitamos la contraseña de su cuenta
if ($pass1 == $_SESSION[pass]){ // Si la contraseña es correcta, empezamos. Comparamos la contraseña encriptada con la de su sesión

// Aquí comienza el tema...

$comprobacionuser mysql_query("SELECT * FROM usuarios WHERE nick='$nick'"); // Consulta a la base de datos para determinar si existe ese usuario
if($datos2 mysql_fetch_array($comprobacionuser)){
Header "Location: http://$linkweb/perfil.php?error=4");
}

$comprobacionemail mysql_query("SELECT * FROM usuarios WHERE email='$email'"); // Consulta a la base de datos para determinar si existe ese email
if($datos22 mysql_fetch_array($comprobacionemail)){
Header "Location: http://$linkweb/perfil.php?error=5");
}

$update1 mysql_query("UPDATE usuarios SET nick = '$nick', email = '$email' WHERE id = '$id' "); // Actualización

session_destroy(); 
He probado a comparar los datos ya obtenidos con el de la sesión pero aún así no se que pasa que no lo hace correctamente
Seguro que debe de ser una solución sencilla o se me escapa alguna tontería... pero hoy no es mi día
Un saludo y gracias desde ya
  #2 (permalink)  
Antiguo 25/05/2012, 01:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema al comprobar datos

Este es el foro de mysql.

En tu script identifico tres querys

SELECT * FROM usuarios WHERE nick='$nick'
Busca usuarios con nick igual al valor de $nick

SELECT * FROM usuarios WHERE email='$email'
Busca usuarios con email igual al valor de $email


UPDATE usuarios SET nick = '$nick', email = '$email' WHERE id = '$id'
Actualiza el valor de nick y email del usuario con id igual al valor de $id... aqui sobrarian los delimitadores marcados en rojo

Como tu mismo puedes ver són correctas (siempre que la variables tengan el valor que tengan que tener). Obviamente falta mucho codigo php para hacer lo que quieres... no se si en el foro de php te lo van a dar o te van adecir que seas mas concreto en tus preguntas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 25/05/2012, 07:41
 
Fecha de Ingreso: enero-2011
Mensajes: 59
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Problema al comprobar datos

Cita:
Iniciado por quimfv Ver Mensaje
Este es el foro de mysql.

En tu script identifico tres querys

SELECT * FROM usuarios WHERE nick='$nick'
Busca usuarios con nick igual al valor de $nick

SELECT * FROM usuarios WHERE email='$email'
Busca usuarios con email igual al valor de $email


UPDATE usuarios SET nick = '$nick', email = '$email' WHERE id = '$id'
Actualiza el valor de nick y email del usuario con id igual al valor de $id... aqui sobrarian los delimitadores marcados en rojo

Como tu mismo puedes ver són correctas (siempre que la variables tengan el valor que tengan que tener). Obviamente falta mucho codigo php para hacer lo que quieres... no se si en el foro de php te lo van a dar o te van adecir que seas mas concreto en tus preguntas.
Ok, muchas gracias me quedo mas tranquilo al saber que las sentenicas son correcta. Preguntaré por PHP un saludo y gracias!

Etiquetas: php, select, sql
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 10:49.