Foros del Web » Programando para Internet » PHP »

Problema con buscador

Estas en el tema de Problema con buscador en el foro de PHP en Foros del Web. Hola! Tengo un problema con el buscador interno de mi web, ruego ayuda! el problema es que al buscar cualquier palabra en la base de ...
  #1 (permalink)  
Antiguo 04/11/2012, 06:26
 
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Busqueda Problema con buscador

Hola! Tengo un problema con el buscador interno de mi web, ruego ayuda! el problema es que al buscar cualquier palabra en la base de datos me arroja absolutamente TODOS los resultados posibles, (por lo que entiendo que me conecta con la BD pero luego hace mal la busqueda) supongo que no sera demasiado complicado solucionarlo pero no lo consigo.

Copio y pego el codigo:
Código HTML:
Ver original
  1. </head>
  2.  
  3. <body background="fondoinferior.jpg" bgproperties="fixed" bgcolor="#94b0ff">
  4.  
  5.   <STYLE type="text/css">
  6. <!--
  7. BODY {
  8. scrollbar-face-color: 5679FF;
  9. scrollbar-highlight-color: 3366FF;
  10. scrollbar-3dlight-color: 3C9DDA;
  11. scrollbar-darkshadow-color: 041587;
  12. scrollbar-shadow-color: 1d0366;
  13. scrollbar-arrow-color: 05168A;
  14. scrollbar-track-color: 94b0ff;
  15. }
  16. -->
  17. <!-- Empezamos tabla dinamica -->
  18. <table width="758" border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">
  19.   <tr>
  20.     <td width="130" class="Estilo8">&nbsp;<B>Imagen</B></td>
  21.     <td width="125" class="Estilo8">&nbsp;<B>Interprete/Autor</B></td>
  22.     <td width="258" class="Estilo8">&nbsp;<B>Titulo Generico o Cara A</B></td>
  23.     <td width="26" class="Estilo8">&nbsp;<B>Form</B></td>
  24.     <td width="62" class="Estilo8">&nbsp;<B>Ref Estado</B> </td>
  25.     <td width="45" class="Estilo8"><B>Otras Ref</B></td>
  26.     <td width="30" class="Estilo8">&nbsp;<B>A&ntilde;o</B></td>
  27.     <td width="30" class="Estilo8">&nbsp;<B>Precio</B></td>
  28.     <td width="38" class="Estilo8">&nbsp;<B>Observaciones</B></td>
  29.      <td width="10" class="Estilo8">&nbsp;<B>Cap</B></td>
  30.   </tr>
Código PHP:
Ver original
  1. <?php
  2. //abrimos fichero
  3. $nom_tabla = "mitabla";
  4. $base_de_datos = "xxxxx";
  5. $servidor= "localhost";
  6. $usuario= "xxxxx";
  7. $contrase&#65533;a= "xxxxx";
  8. //aqui viene la consulta del formulario
  9. $a_quien_buscas=$quien;
  10.  
  11. //1. CONECTAMOS CON EL SERVIDOR
  12. if (!($conexion=mysql_connect($servidor,$usuario,$contrase&#65533;a)))
  13.   {
  14.       echo "Error conectando a la base de datos.";
  15.       exit();
  16.    }
  17.    
  18. //2.SELECCIONAMOS NUESTRA BASE DE DATOS
  19. if (!mysql_select_db($base_de_datos,$conexion))
  20.    {
  21.       echo "Error seleccionando la base de datos.";
  22.       exit();
  23.    }
  24.  
  25. //3.REALIZAMOS NUESTRA CONSULTA EN LA TABLA
  26. /*importantisimo, los campos de ENTEROS cuando se van a rellenar no deben estar: '5' sino: 5 */
  27. $sql="SELECT * FROM mitabla WHERE autor LIKE '%$a_quien_buscas%' ORDER BY capitulo";
  28. if(!$resultado=mysql_query($sql,$conexion))
  29. {
  30.     echo "Error en la consulta: ".mysql_error();
  31.     exit();
  32. }
  33. else
  34. {
  35.     $contador=0;
  36.      while(($registro=mysql_fetch_row($resultado))  )/*(&& $contador < 14)*/
  37.      {
  38.      
  39.          if($registro[1]==NULL)//si no hay imagen ponemos un espacio
  40.          {
  41.            echo"<td>&nbsp;</td>";
  42.          }
  43.           else
  44.          {
  45.            echo"<td><img src='imagenes/".$registro[1].".jpg'></td>";
  46.          }
  47.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[2]))."</td>";
  48.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[3]))."</td>";
  49.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[4]))."</td>";
  50.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[5]))."</td>";
  51.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[6]))."</td>";
  52.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[7]))."</td>";
  53.          echo"<td class='Estilo8'><div align='right'>0</div></td>";
  54.          if($registro[9]!=NULL)//si es null ponemos un espacio en blanco
  55.          {
  56.           echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[9]))."</td>";
  57.          }
  58.          else
  59.          {
  60.           echo"<td class='Estilo8'>&nbsp;</td>";
  61.          }
  62.          echo"<td class='Estilo8'>&nbsp;".ucwords(strtolower($registro[10]))."</td>";
  63.          echo    "</tr>";
  64.          
  65.                
  66.         $contador++;
  67.                  
  68.      }
  69. }
  70.      
  71.  
  72.  
  73. ?>

Última edición por gnzsoloyo; 04/11/2012 a las 07:14 Razón: Codigo no etiquetado y poco legible.
  #2 (permalink)  
Antiguo 04/11/2012, 07:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con buscador

La consulta en sí no contiene ningún error, por lo que el problema debe ser de programación, pero no se tratan problemas de programación en los foros de base de datos (normas del foro), por lo que sería mejor que consultaras en el Foro de PHP.
Te pasaré el post para allá. Seguro que te pueden ayudar.

Lo que si puedo darte es un par de tips:
- No uses caracteres extendidos en los códigos (como la "ñ"), sólo en las cadenas de texto. Tienden a generar errores.
- No se ve donde toma el valor $quien, por lo que debes verificar si realmente los valores están llegando donde deben estar.

Finalmente:
En el editor de texto hay un ComboBox que contiene las etiquetas para los códigos.
Usalos.
Y no postees en los foros de BBDD código de programación, sólo SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/11/2012, 08:17
 
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Problema con buscador

Ok, gracias, en tal caso espero que alguien me pueda echar una mano, no entiendo por qué no me filtra los resultados...
  #4 (permalink)  
Antiguo 04/11/2012, 08:40
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Problema con buscador

Como te recomienda gnzsoloyo sigue sus consejos. En primer lugar no sabemos que $quien es quien Lo primero y mas sencillo es hacer dos echos cuando se recibe el dato. Uno a la variable $quien y otro a la consulta $sql. De esa manera puedes mirar

1. Si la variable $quien si le esta llegando el dato correcto.

2. Si la consulta queda bien generada.

Comentanos que resultados te da y a partir de ahi es mas facil colaborar. Yo tampoco le encontre algun error de sintaxis.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 04/11/2012, 10:12
 
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Problema con buscador

Ok gracias voy a intentarlo, de todas formas comentaros que creo que éste problema empezó cuando cambié de Servidor, por si a alguien se le ocurre algo...

Etiquetas: select, sql, tabla, buscadores, campos
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:34.