Foros del Web » Programando para Internet » PHP »

Consulta en mysql

Estas en el tema de Consulta en mysql en el foro de PHP en Foros del Web. Buenas me acabo de registrar y espero que a partir de ahora este foro y esta web sean mi fuente de sabiduría. Soy relativamente nueva ...
  #1 (permalink)  
Antiguo 13/10/2011, 16:07
Avatar de Koletta  
Fecha de Ingreso: octubre-2011
Ubicación: España
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Consulta en mysql

Buenas me acabo de registrar y espero que a partir de ahora este foro y esta web sean mi fuente de sabiduría.
Soy relativamente nueva en PHP y tengo un problema que seguramente me ayuden a solucionar.
Un sistema de login, tan sencillo como mandar los dos campos del formulario al pulsar el botón y la misma página hace la consulta a la tabla y si lo encuentra redirecciona a la pagina principal. Pues no soy capaz de realizarla. He comprobado que pasen los datos. Me construye bien la consulta pero no paso de ahí. Ya no se que hacer. Tanto la conexión como la selección de la base de datos las tengo controladas como OK (tengo puesto un echo en ambas para asegurarme de que resultan bien).
Os pongo el código por si viesen algo:

<?php require_once("includes/conexion.php"); ?>
<?php
if(isset($_POST["username"]))
{
$username = $_POST["username"];
$password = $_POST["password"];

$consulta = "SELECT * FROM club
WHERE NOMBRE = '{username}' CLAVE = '{$password}'";

$resultado = mysql_query($consulta, $conexión);

if(!$resultado)
{
echo "No se ha podido realizar la consulta".mysql_error().mysql_errno();
}else{
header ("Location: seleccion_pistas.php");
}
}
?>

Y aquí el código del formulario, aunque ya digo que las variables pasan bien, debe ser lo anterior:

<form action="login.php" method="POST">
<table>
<tr>
<td>Nombre de usuario: </td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Contraseña:</td>
<td><input type="password" name="password" /></
</tr>
</table>
<input type="submit" value="Acceder" />
</form>


Dejo también la conexión a base de datos, por si quieren echarle un ojo:

$conexion = mysql_connect("sql202.260mb.com","usuario","clave" );
if(!$conexion)
{
echo("No se pudo conectar a la base de datos: ".mysql_error());
}else{
echo "OK";
}

$bd_seleccionada = mysql_select_db("Mi_base_de_datos", $conexion);
if(!$bd_seleccionada)
{
echo("No se pudo seleccionar la base de datos.");
}else{
echo "OK"."<br>";
}

Esos "OK", son temporales, los uso para saber que ha conectado y seleccionado bien.

Mil y una gracias por vuestra ayuda :)
  #2 (permalink)  
Antiguo 13/10/2011, 16:15
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: Consulta en mysql

Te falta el signo $ en username y los {} en este caso no son necesario yo les veo mas utilidad cuando tienes que poner un parametro del tipo $_post['algo']

Trata esto y mira ver si te funciona

Saludos
  #3 (permalink)  
Antiguo 13/10/2011, 18:04
Avatar de Koletta  
Fecha de Ingreso: octubre-2011
Ubicación: España
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Respuesta: Consulta en mysql

Buenas y gracias por la rapidez!

He modificado lo que me indiscaste. Ya está puesto el simbolo $ en la variable y he quitado las llave {}.
He imprimido la consulta para ver si es correcta y este es el resultado:

SELECT * FROM clubsdetenis WHERE NOMBRE = 'Antonio' AND CLAVE = '00001111'

Sigue dando lo mismo. Puedo imprimir algún error de mysql o algo similar para intentar averiguar el fallo?

Muchas gracias.

Saludos.
  #4 (permalink)  
Antiguo 13/10/2011, 18:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Consulta en mysql

¿Qué error tienes ahora? o mejor dicho que quieres hacer con los datos de la base de datos

PD: quita esos echo temporales, no puedes imprimir nada antes de un header.

Edit: Usa funciones como mysql_num_rows para saber si se encontró algún registro o no.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 13/10/2011 a las 18:22 Razón: Más información
  #5 (permalink)  
Antiguo 13/10/2011, 18:36
Avatar de Koletta  
Fecha de Ingreso: octubre-2011
Ubicación: España
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Consulta en mysql

He quitado los "echo" temporales. Realmente lo que estoy haciendo es imprimir lo datos para ver si los recupera pero mi objetivo es que al hacer la consulta y devolver una fila, se vaya por el "header" a la siguiente página.
No consigo hacerlo. Como puedo mostrar el error para darte mas pistas?

He cambiado línea donde asigno el valor a $resultado por esta otra:

$resultado = mysql_query($consulta, $conexion) or die(mysql_error());

Muchas gracias por la ayuda.

PD: Vivo en España y ahora mismo son las 2.33 de madrugada. Mañana tengo que trabajar. Contestaré a sus dudas en cuanto tengo un minutos. Buenas noches.
  #6 (permalink)  
Antiguo 13/10/2011, 18:41
Avatar de Koletta  
Fecha de Ingreso: octubre-2011
Ubicación: España
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Consulta en mysql

Creo que he logrado hacerlo funcionar. He usado la función que usé en principio y deseché porque no funcionaba.
Ahora va de perlas (espero).

if(mysql_affected_rows() == 1)
{
header ("Location: seleccion_pista.php");
}

Muchas gracias por todo.

Seguimos en contacto.
  #7 (permalink)  
Antiguo 13/10/2011, 18:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Consulta en mysql

Bueno yo decía algo así pero con mysql_num_rows (si es mayor que cero). Que bueno que por lo menos ya te funcione, cualquier cosa con mucho gusto.

Código PHP:
Ver original
  1. if (mysql_num_rows($result) > 0) {
  2.     header("Location: seleccion_pista.php");
  3. }

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: consulta-sql, mysql, php+mysql, bases-de-datos
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 00:08.