Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con buscador mysql exacto

Estas en el tema de Problemas con buscador mysql exacto en el foro de PHP en Foros del Web. Saludos amigos! Estoy probando de hacer un buscador mysql para que al poner el "nif" del usuario, recoja los datos de necesarios para entrar a ...
  #1 (permalink)  
Antiguo 25/09/2014, 00:52
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Pregunta Problemas con buscador mysql exacto

Saludos amigos!

Estoy probando de hacer un buscador mysql para que al poner el "nif" del usuario, recoja los datos de necesarios para entrar a una tienda online, concretamente el usuario y passaword.
Dejo el codigo en el que estoy trabajando, pero la verdad es que no me acaba de funcionar, alguien me sabría decir que puedo hacer?

Gracias de antemano

Código PHP:
Ver original
  1. <form name="form1" method="post" action="login.php" />
  2. <p>Buscar por CIF o NIF </p>
  3. <p>
  4. <input name="busca" type="text" id="busca" />
  5. </p>
  6. <label>
  7. <input id="submit" type="submit" name="submit" value="buscar" />
  8. </label>
  9. </form>
  10. <?php
  11. $busca="";
  12. $busca=$_POST['busca'];
  13. mysql_connect("xxxxx","login",'xxxxx')or die ('Ha fallado la conexión: '.mysql_error());
  14. mysql_select_db('login')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  15. if($busca!="")
  16. {
  17.  
  18. $buscar = mysql_query("SELECT * FROM `usuarios` WHERE nif = '".$busca."'");
  19.  
  20. while($f=mysql_fetch_array($busqueda))
  21. {
  22. echo $f['id'].'&nbsp;&nbsp;'.$f['usuario'].'&nbsp;&nbsp;'.$f['password']."<br>";
  23. }
  24. }
  25. ?>
  #2 (permalink)  
Antiguo 25/09/2014, 01:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problemas con buscador mysql exacto

Intentas crear un array asociativo con los datos resultantes de la consulta, sin embargo, no utilizas a la variable correcta. En lugar de $busqueda debe de ir $busca. Por otro lado, ya que haces el envío y recepción de datos en el mismo archivo, debes de utilizar una condición para ejecutar la búsqueda solo cuando recibas datos.

Código PHP:
Ver original
  1. if (isset($_POST)){
  2.     //...
  3. }

Y, en cuanto a la consulta, antes de mandarte a mostrar los datos resultantes, debes de verificar que se hayan encontrado datos, para lo cual puedes usar la función mysql_num_rows, además, así como lo haces en la conexión, deberías de cortar la ejecución del script en caso de que no funcione la consulta.

Creo también que, si la consulta devolverá los datos de un solo registro, no es necesario utilizar un bucle. Por otro lado, te aconsejo empezar a utilizar la extensión mejorada MySQLi, pues, la que actualmente usas, se encuentra obsoleta a partir de la versión 5.5.0 de PHP y, además, la extensión de la que te comento, es mejor, no por nada es una extensión mejorada.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 25/09/2014, 03:16
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Respuesta: Problemas con buscador mysql exacto

Gracias por la respuesta, pero donde tengo que poner la condición para ejecutar la búsqueda y como se escribe el código porque no lo acabo de entender.
Me dices que mysql ya esta obsoleto, Haber si te entiendo.. hay que cambiar todos los textos del codigo que dice; mysql por mysqli?
Y otra pregunta donde se pueden ver los codigos que van caducando para que no me pase lo mismo?
  #4 (permalink)  
Antiguo 25/09/2014, 06:55
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Respuesta: Problemas con buscador mysql exacto

Ya esta solucionado, al final he cambiado la variable busca por busqueda, y al while le he puesto también la variable busqueda, PD ya funciona!!!

Por cierto hay alguna manera de que pasado unos minitos se borren los datos que aparecen en pantalla de esa busqueda?






Código PHP:
Ver original
  1. <?php
  2. $busca="";
  3. $busca=$_POST['busca'];
  4. mysql_connect("xxxxxx","login",'xxxxxx')or die ('Ha fallado la conexión: '.mysql_error());
  5. mysql_select_db('login')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  6. if($busca!="")
  7. {
  8.  
  9. $busqueda = mysql_query("SELECT * FROM `usuarios` WHERE nif = '".$busca."'");
  10.  
  11. while($f=mysql_fetch_array($busqueda))
  12. {
  13. echo $f['id'].'&nbsp;&nbsp;'.$f['usuario'].'&nbsp;&nbsp;'.$f['password']."<br>";
  14. }
  15. }
  16. ?>

Última edición por jors_11; 25/09/2014 a las 07:37
  #5 (permalink)  
Antiguo 25/09/2014, 12:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problemas con buscador mysql exacto

Cita:
Iniciado por jors_11 Ver Mensaje
Gracias por la respuesta, pero donde tengo que poner la condición para ejecutar la búsqueda y como se escribe el código porque no lo acabo de entender.
Simplemente tienes que colocar ese código en donde coloqué el comentario con los puntos suspensivos, creo que era bastante obvio.

Cita:
Iniciado por jors_11 Ver Mensaje
Me dices que mysql ya esta obsoleto, Haber si te entiendo.. hay que cambiar todos los textos del codigo que dice; mysql por mysqli?
No es solo añadir la i, tienes que leer lo que dice el manual en el enlace que adjunté en mi anterior respuesta.

Cita:
Iniciado por jors_11 Ver Mensaje
Y otra pregunta donde se pueden ver los codigos que van caducando para que no me pase lo mismo?
En el manual también puedes ver eso.

Cita:
Iniciado por jors_11 Ver Mensaje
Por cierto hay alguna manera de que pasado unos minitos se borren los datos que aparecen en pantalla de esa busqueda?
Como deseas eliminar datos que se están visualizando, involucras al navegador, por lo que eso debes de hacerlo con JavaScript. El método setTimeout te puede servir.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 25/09/2014, 13:51
Avatar de jors_11  
Fecha de Ingreso: marzo-2011
Ubicación: Granollers
Mensajes: 79
Antigüedad: 13 años
Puntos: 2
Respuesta: Problemas con buscador mysql exacto

Gracias Alexis88, ya lo entiendo y lo soluciono,,, genial los links, para seguir incando los codos,

Un saludo!

Etiquetas: buscador, exacto, mysql, select, sql, usuarios
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 21:15.