Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pequeño problema con buscador

Estas en el tema de Pequeño problema con buscador en el foro de PHP en Foros del Web. Hey gente de Foros del Web, necesito de su ayuda, con este problema que se me presenta al enviar información de un formulario html a ...
  #1 (permalink)  
Antiguo 31/07/2014, 22:22
 
Fecha de Ingreso: julio-2014
Mensajes: 12
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Pequeño problema con buscador

Hey gente de Foros del Web, necesito de su ayuda, con este problema que se me presenta al enviar información de un formulario html a php.
Bueno, el caso es que trato de hacer que cuando le doy click al boton submit y cuando este abre php, realice lo siguiente:
-Primero comprobar si el input esta vacio, si es asi, entonces no da un error.
-Segundo si el input tiene datos, y estos se encuentran en la base de datos, entonces los muestra (estos primeros 2 puntos si me funcionan, el problema que tengo es el siguiente punto),
-Tercero, si el input tiene datos que no coinciden con la base de datos, entonces quiero hacer que me mande un mensaje de error, pero no lo hace, simplemente no muestra nada.

-base de datos Mysql

Tiene alguien idea de que puedo hacer para resolver este problema, ya trate muchas cosas, investigue, utilice codigos diferentes, pero sigue igual!!

Les dejo a continuacion el codigo, espero me puedan ayudar
Código:
<form name="busqueda" method="POST" action="buscador.php" enctype="multipart/form-data">
<input size="20px" id="buscar" name="buscar" type="text" placeholder="Buscar" style="cursor: url(cursores/texto.cur), text;">
<input value="Ir" type="submit">
Código:
<?php
include "conexion.php";
$busca="";
$busca=$_POST['buscar'];
if($busca!="")
{
$busqueda=mysql_query("SELECT * FROM peliculas WHERE nombre LIKE '%".$busca."%'");
while($f=mysql_fetch_array($busqueda))
{
echo ($f['nombre']."<br>");
echo("<center><a href='index.php'>Regresar al men&uacute; principal</a></center>");
include("fuegos.php");
}
}
else
{
echo("Upps!, parece que tu b&uacute;squeda no obtuvo ning&uacute;n resultado, pero no te preocupes, 
a&uacute;n puedes perder tu tiempo con los siguientes videos:<br><br>");
echo("<center>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/7LKHpM1UeDA' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/z6cZTkHlCsw' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/icwoI3uno_c' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/qTvWpx6dpHk' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/B1x6KLmczuQ' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/C8xiy1JZbNk' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<iframe width='600' height='400' src='//www.youtube.com/embed/veEb8rg7SMg' frameborder='0' allowfullscreen></iframe><br><br>");
echo("<a href='index.php'>Regresar al men&uacute; principal</a>");
echo("</center>");
}
?>
aqui esta la web en la que trato de implementar el codigo:
http://ag-corp.url.ph/

Existe actualmente solo el siguiente dato en la base de datos en la tabla peliculas: The time machine

Prueben poniendo cualquier cosa en el buscador para que vean a lo que me refiero (no aparece nada, ya intente varios codigos).

Disculpen tanto rollo

Última edición por jaaggaaj1; 31/07/2014 a las 22:27 Razón: me equivoque
  #2 (permalink)  
Antiguo 01/08/2014, 00:22
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: Pequeño problema con buscador

Tu lógica no hace lo que querés hacer: el mensaje de error se presenta cuando el campo está vacío, no cuando no hay resultados.

Código PHP:
Ver original
  1. if (busqueda no es vacía) {
  2.   // Buscar
  3.   while(hay_resultados)) {
  4.     //resultados
  5.   }
  6. } else {
  7.   //Mensaje de error
  8. }

Claramente debería ser:

Código PHP:
Ver original
  1. if (busqueda no es vacía) {
  2.   // Buscar
  3.   if (resultados > 0) {
  4.     while(hay_resultados)) {
  5.       //resultados
  6.     }
  7.   } else {
  8.     // Mensaje de error, no hubieron resultados
  9.   }
  10. } else {
  11.   //Mensaje de error, el campo está vacío
  12. }

Para obtener la cantidad de resultados de una consulta usa:
Código PHP:
Ver original
  1. mysql_num_rows($busqueda)

Además, recomiendo que uses !== '' en lugar de != "" para comprobar la cadena vacía, ya que PHP trata otros valores como vacíos cuando no los consideraríamos así, como el 0.
  #3 (permalink)  
Antiguo 01/08/2014, 21:00
 
Fecha de Ingreso: julio-2014
Mensajes: 12
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Pequeño problema con buscador

Cita:
Iniciado por Henkka Ver Mensaje
Tu lógica no hace lo que querés hacer: el mensaje de error se presenta cuando el campo está vacío, no cuando no hay resultados.

Claramente debería ser:

Código PHP:
Ver original
  1. if (busqueda no es vacía) {
  2.   // Buscar
  3.   if (resultados > 0) {
  4.     while(hay_resultados)) {
  5.       //resultados
  6.     }
  7.   } else {
  8.     // Mensaje de error, no hubieron resultados
  9.   }
  10. } else {
  11.   //Mensaje de error, el campo está vacío
  12. }

Para obtener la cantidad de resultados de una consulta usa:
Código PHP:
Ver original
  1. mysql_num_rows($busqueda)

Además, recomiendo que uses !== '' en lugar de != "" para comprobar la cadena vacía, ya que PHP trata otros valores como vacíos cuando no los consideraríamos así, como el 0.
"Mi amigo, su ayuda me a venido bastante bien, ya me funciono, se lo agradezco bastante "

Aqui dejo el codigo por si a alguien le surge la misma pregunta que a mi!!

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3. $busca=$_POST['buscar'];
  4. if ($busca)
  5. {
  6. // Buscar
  7. $busqueda=mysql_query("SELECT * FROM peliculas WHERE nombre LIKE '%".$busca."%'");
  8. if ($f=mysql_num_rows($busqueda) > 0)
  9. {
  10. while($f=mysql_fetch_array($busqueda))
  11. {
  12. //resultados
  13. echo ($f['nombre']."<br>");
  14. echo("<center><a href='index.php'>Regresar al men&uacute; principal</a></center>");
  15. include("fuegos.php");
  16. }
  17. }
  18. else
  19. {
  20. // Mensaje de error, no hubieron resultados
  21. echo("No hay");
  22. echo("Upps!, parece que tu b&uacute;squeda no obtuvo ning&uacute;n resultado, pero no te preocupes,
  23. a&uacute;n puedes perder tu tiempo con los siguientes videos:<br><br>");
  24. echo("<center>");
  25. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/7LKHpM1UeDA' frameborder='0' allowfullscreen></iframe><br><br>");
  26. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/z6cZTkHlCsw' frameborder='0' allowfullscreen></iframe><br><br>");
  27. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/icwoI3uno_c' frameborder='0' allowfullscreen></iframe><br><br>");
  28. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/qTvWpx6dpHk' frameborder='0' allowfullscreen></iframe><br><br>");
  29. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/B1x6KLmczuQ' frameborder='0' allowfullscreen></iframe><br><br>");
  30. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/C8xiy1JZbNk' frameborder='0' allowfullscreen></iframe><br><br>");
  31. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/veEb8rg7SMg' frameborder='0' allowfullscreen></iframe><br><br>");
  32. echo("<a href='index.php'>Regresar al men&uacute; principal</a>");
  33. echo("</center>");
  34. }
  35. }
  36. else
  37. {
  38. //Mensaje de error, el campo está vacío
  39. echo("en blanco");
  40. echo("Upps!, parece que tu b&uacute;squeda no obtuvo ning&uacute;n resultado, pero no te preocupes,
  41. a&uacute;n puedes perder tu tiempo con los siguientes videos:<br><br>");
  42. echo("<center>");
  43. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/7LKHpM1UeDA' frameborder='0' allowfullscreen></iframe><br><br>");
  44. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/z6cZTkHlCsw' frameborder='0' allowfullscreen></iframe><br><br>");
  45. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/icwoI3uno_c' frameborder='0' allowfullscreen></iframe><br><br>");
  46. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/qTvWpx6dpHk' frameborder='0' allowfullscreen></iframe><br><br>");
  47. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/B1x6KLmczuQ' frameborder='0' allowfullscreen></iframe><br><br>");
  48. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/C8xiy1JZbNk' frameborder='0' allowfullscreen></iframe><br><br>");
  49. echo("<iframe width='600' height='400' src='//www.youtube.com/embed/veEb8rg7SMg' frameborder='0' allowfullscreen></iframe><br><br>");
  50. echo("<a href='index.php'>Regresar al men&uacute; principal</a>");
  51. echo("</center>");
  52. }
  53. ?>

Etiquetas: buscador, mysql
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 14:43.