Foros del Web » Programando para Internet » PHP »

Error en Sentencia SQL

Estas en el tema de Error en Sentencia SQL en el foro de PHP en Foros del Web. Buenas muchachos, bueno tengo un problema al intentar comparar datos de un formulario (login) con una DB de MySql, e buscado solución y e encontrado ...
  #1 (permalink)  
Antiguo 10/03/2011, 16:23
 
Fecha de Ingreso: junio-2010
Mensajes: 142
Antigüedad: 13 años, 10 meses
Puntos: 5
Error en Sentencia SQL

Buenas muchachos, bueno tengo un problema al intentar comparar datos de un formulario (login) con una DB de MySql, e buscado solución y e encontrado respuestas, pero no doy con mi problema especificamente por esa razon posteo, Muchas gracias desde ya!.

El error muy famoso:
"Problemas al tomar los datosYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' contrasena='asdadasd'' at line 1"

ahora el código completo desde la conexión a la DB:

Código:
<?php 
$usuario=$_REQUEST['usuario'];
$contrasena=$_REQUEST['contrasena'];

//contecto a DB
$conexion=mysql_connect("xxxxxxxxx","xxxxxxxxx","xxxxxxxxxxx") or die ("Problemas para conectar a la DB");

//selecciono tabla
mysql_select_db("xxxxxxxxxxx",$conexion) or die ("Problemas al seleccionar la Tabla");

//tomo los datos Usuario y Contraseña en este caso
$datos=mysql_query("SELECT usuario, contrasena FROM usuarios WHERE usuario='$_REQUEST[usuario]', contrasena='$_REQUEST[contrasena]'", $conexion) or die ("Problemas al tomar los datos".mysql_error());

if ($reg=mysql_fetch_array($datos))
{if ($usuario!=$reg) {echo "El usuario no existe.";}
else {if ($contrasena==$reg){
setcookie("usuario",$usuario,0,"/"); header("location: index.php?pag=principal");}
else {echo "Esa no es tu contraseña.";}
}};
mysql_close($conexion);
?>
Un fuerte abrazo!
  #2 (permalink)  
Antiguo 10/03/2011, 16:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error en Sentencia SQL

las múltiples comparaciones de un WHERE deben ser unidas con los operadores lógicos AND/OR y no con comas....

eso deberías estudiarlo en una referencia de SQL, porque de PHP nada que ver!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/03/2011, 16:29
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Error en Sentencia SQL

Saludos

Cuando tu indicas condición WHERE en el SELECT, no debes separarlo por comas sino por un operador lógico ya sea AND o OR
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #4 (permalink)  
Antiguo 10/03/2011, 17:02
 
Fecha de Ingreso: junio-2010
Mensajes: 142
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: Error en Sentencia SQL

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Cuando tu indicas condición WHERE en el SELECT, no debes separarlo por comas sino por un operador lógico ya sea AND o OR
Buenas,

quieres decir que sería de este modo:
Código:
SELECT usuario, contrasena FROM usuarios WHERE usuario='$_REQUEST[usuario]' AND contrasena='$_REQUEST[contrasena]'
?

espero la respuesta, gracias!
  #5 (permalink)  
Antiguo 10/03/2011, 17:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error en Sentencia SQL

Cita:
Iniciado por rossijona Ver Mensaje
espero la respuesta, gracias!
¡intentalo y nos dices!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 10/03/2011, 17:23
 
Fecha de Ingreso: junio-2010
Mensajes: 142
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: Error en Sentencia SQL

Cita:
Iniciado por pateketrueke Ver Mensaje
¡intentalo y nos dices!
Justito estaba editando el tema y al enviar la edición el foro no me permitio porque estabas posteando

escribí esto:

...espero la respuesta, gracias!

Muchas gracias, ya lo pude resolver (tal cual, cambie la coma por el AND), ahora me queda la parte de abajo de comparar los datos ingresados por el usuario (usuario y pass) y si estos son verdaderos crear la cookie para luego levantar en el index. (en caso de que no me salga postero en este mismo tema).


Gracias!.

Bueno, no me quiere quedar la cuestion es que si el usuario y la pass son correctas crear una cookie, en el caso contrario mostrar un mensaje con un enlace.

Mi cód es:
Código:
//tomo los datos Usuario y Contraseña en este caso
$datos=mysql_query("SELECT usuario, pass FROM usuarios WHERE usuario='$_REQUEST[usuario]' AND pass='$_REQUEST[pass]'", $conexion) or die ("Problemas al tomar los datos".mysql_error());
//comparo los datos
if ($reg=mysql_fetch_array($datos))
if ($usuario==$reg('usuario'))
if ($pass==$reg('pass'))
setcookie ("usuario",$usuario,0,"/"); header ("location: http://laboratorio.host22.com/index.php?pag=principal");
else {echo "Usuario o Contraseña incorrectos <a href='http://laboratorio.host22.com/index.php?pag=principal'>Volver</a>";};
mysql_close($conexion);
?>
El mensaje de error es:
Parse error: syntax error, unexpected T_ELSE in /home/a4177777/public_html/bienvenido.php on line 24

Ya esta resuelto, volvi a escribir "else" de nuevo

Última edición por rossijona; 10/03/2011 a las 19:45
  #7 (permalink)  
Antiguo 10/03/2011, 20:18
Avatar de JoseTejada  
Fecha de Ingreso: diciembre-2007
Ubicación: Peru.Lima.Cercado.MDuarez.Granaderos172
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: Error en Sentencia SQL

Después de la llave de cierre del else has puesto un punto y coma... quítala...
además pon esta línea dentro de uno de los if
Código PHP:
header ("location: http://laboratorio.host22.com/index.php?pag=principal"); 
__________________
Un poco de Karmita no te va a hacer a ti pobre ni a mi rico... colabórame px ;)... Twitter: @josetejadauch

Última edición por JoseTejada; 10/03/2011 a las 20:33

Etiquetas: sentencia, 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 22:44.