Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con el buscador al no encontrar nada!

Estas en el tema de problemas con el buscador al no encontrar nada! en el foro de PHP en Foros del Web. hola tengo un problema con el resultado de un buscador php y mysql, me explico: cuando busco con cualquier nombre que este en bd, lo ...
  #1 (permalink)  
Antiguo 21/06/2014, 10:12
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 2 meses
Puntos: 0
problemas con el buscador al no encontrar nada!

hola

tengo un problema con el resultado de un buscador php y mysql, me explico: cuando busco con cualquier nombre que este en bd, lo encuentra pero cuando (probando) busco un nombre que no coincida con algún nombre en bd, me presenta el siguiente error:



quiero hacer que en vez de que salga ese error, se cargara la pagina y saliera (por ejemplo) un mensaje explicando que esa búsqueda no dio resultado.

este es el codigo:
Código PHP:
<?php 
$buscar
="";
$buscar=$_POST['buscar'];
$conexionpeli mysqli_connect("localhost""root""""bdpeliculas");
mysqli_select_db($conexionpeli"bdpeliculas");
if(
$buscar!=""){
  
$busqueda=mysqli_query($conexionpeli"SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'");
}
?>
<?php 
WHILE ($muestra=mysqli_fetch_array($busquedaMYSQLI_BOTH)){ ?>
<?php 
?>
  #2 (permalink)  
Antiguo 21/06/2014, 10:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: problemas con el buscador al no encontrar nada!

El error "expect parameter 1 to be mysql_result" sucede cuando la consulta está mal hecha, no cuando está vacía. Es decir, tu consulta en algún momento tiene un error.

Te recomiendo hacer un echo a tu consulta, en tu caso sería algo así como
echo "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'";

así como obtener el error, usando mysqli_error();

Código PHP:
Ver original
  1. $busqueda=mysqli_query($conexionpeli, "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'");
  2.  echo  mysqli_error($conexionpeli);

Por cierto, si no filtras el campo $buscar, pueden inyectarte una consulta maliciosa.
  #3 (permalink)  
Antiguo 21/06/2014, 16:46
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problemas con el buscador al no encontrar nada!

Cita:
Iniciado por ocp001a Ver Mensaje
El error "expect parameter 1 to be mysql_result" sucede cuando la consulta está mal hecha, no cuando está vacía. Es decir, tu consulta en algún momento tiene un error.

Te recomiendo hacer un echo a tu consulta, en tu caso sería algo así como
echo "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'";

así como obtener el error, usando mysqli_error();

Código PHP:
Ver original
  1. $busqueda=mysqli_query($conexionpeli, "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'");
  2.  echo  mysqli_error($conexionpeli);

Por cierto, si no filtras el campo $buscar, pueden inyectarte una consulta maliciosa.
Gracias por responder... intentare lo que me sugieres
  #4 (permalink)  
Antiguo 21/06/2014, 17:14
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problemas con el buscador al no encontrar nada!

Cita:
Iniciado por ocp001a Ver Mensaje
El error "expect parameter 1 to be mysql_result" sucede cuando la consulta está mal hecha, no cuando está vacía. Es decir, tu consulta en algún momento tiene un error.

Te recomiendo hacer un echo a tu consulta, en tu caso sería algo así como
echo "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'";

así como obtener el error, usando mysqli_error();

Código PHP:
Ver original
  1. $busqueda=mysqli_query($conexionpeli, "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'");
  2.  echo  mysqli_error($conexionpeli);

Por cierto, si no filtras el campo $buscar, pueden inyectarte una consulta maliciosa.
intento hacer lo que me dices pero no me da resultado...
que crees que sea ese error en la sintaxis?
  #5 (permalink)  
Antiguo 21/06/2014, 20:40
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problemas con el buscador al no encontrar nada!

Hola blackmel25

Te recomendaron hacer un echo de la consulta:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM tbpelicula WHERE name_latino LIKE '%{$buscar}%'";  
  2. echo $sql; // ok

Por suerte no hay error ahi, por otro lado no dices QUE error te arroja luego de las sugerencias que te han hecho ni en que linea... es como un juego de adivinanzas
__________________
Salu2!
  #6 (permalink)  
Antiguo 21/06/2014, 22:49
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problemas con el buscador al no encontrar nada!

Cita:
Iniciado por Italico76 Ver Mensaje
Hola blackmel25

Te recomendaron hacer un echo de la consulta:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM tbpelicula WHERE name_latino LIKE '%{$buscar}%'";  
  2. echo $sql; // ok

Por suerte no hay error ahi, por otro lado no dices QUE error te arroja luego de las sugerencias que te han hecho ni en que linea... es como un juego de adivinanzas
hola y gracias por responder...

este juego de adivinanza me esta volviendo loco :S

el error que me presenta (luego de la "correpcion") es que no se presenta nada, solo sale todo blanco... he agotado mi (poco) conocimiento en php y todavía no comprendo que pasa. si pudieras ayudarme a salir de este error te lo agradecería mucho :D
  #7 (permalink)  
Antiguo 22/06/2014, 05:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problemas con el buscador al no encontrar nada!

Hola.... a ver que podemso hacer

Código PHP:
Ver original
  1. <?php  
  2. // Habilito SESSIONS!
  3.  
  4. // Hasta corregir errores, habilito se muestren todos
  5.  
  6. // forma correcta de validar si esta vacio una variable $_POST
  7. $buscar = isset($_POST['buscar']) ? $_POST['buscar'] : null;
  8.  
  9.  
  10. // deberias incluir archivo de conexion y no mostrar nada aqui
  11. $conexionpeli = mysqli_connect("localhost", "xxx", "xxx", "bdpeliculas");
  12.  
  13. // debo validar si la conexion fue exitosa o no
  14.     printf("Fallo en conexion: %s\n", mysqli_connect_error());
  15.     exit();
  16. }
  17.  
  18. // selecciono db
  19. mysqli_select_db($conexionpeli, "bdpeliculas");
  20.  
  21.  
  22. // forma correcta de chequear que no este vacia...
  23. if(empty($buscar))
  24.     exit(); // no sigo
  25.  
  26. $busqueda = mysqli_query($conexionpeli, "SELECT * FROM tbpelicula WHERE name_latino LIKE '%".$buscar."%'");
  27.  
  28. while ($muestra=mysqli_fetch_array($busqueda, MYSQLI_BOTH)){
  29.     // aca muestras tus campos
  30. }
  31.  
  32.  
  33.  
  34. mysqli_free_result($busqueda);
  35.  
  36. mysqli_close($conexionpeli);
__________________
Salu2!

Etiquetas: html, mysql, select, sql, variable
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 09:39.