Foros del Web » Programando para Internet » PHP »

Buscador que no funciona

Estas en el tema de Buscador que no funciona en el foro de PHP en Foros del Web. Hola Este es el codigo del buscador que estoy usando pero no me funciona. Tal vez si no hay error en este codigo puede ser ...
  #1 (permalink)  
Antiguo 01/03/2010, 07:12
 
Fecha de Ingreso: julio-2009
Mensajes: 311
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Buscador que no funciona

Hola
Este es el codigo del buscador que estoy usando pero no me funciona.
Tal vez si no hay error en este codigo puede ser que sea que no estoy usando (pues no se donde ponerlo ) los nombres de los indices de los campos fulltext que contienen informacion donde se buscará.
Código PHP:
if(isset($_GET['Enviar']))
{ }
{ }
else {
//conexion a base de datos
include 'db.php';

//Los tipos de los campos a buscar son  TEXT con  indice FULLTEXT 
// que en este caso son  los campos  txt2  y adicional
 
if ($busqueda!="")
 {
   
//CUENTA EL NUMERO DE PALABRAS
   
$trozos=explode(" ",$busqueda);
   
$numero=count($trozos);
  if (
$numero==1) {
   
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
   
$sql="SELECT idAviso, txt FROM avisos WHERE VISIBLE =1 AND txt2 LIKE '%$busqueda%' OR adicional LIKE '%$busqueda%' LIMIT 50";
  } elseif (
$numero>1) {
  
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
  //busqueda de frases con mas de una palabra y un algoritmo especializado
  
$sql="SELECT idAviso, txt , MATCH ( txt2, adicional ) AGAINST ( '$busqueda' ) AS Score FROM avisos WHERE MATCH ( txt2, adicional ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";

$result=mysql_query($sql);                       }

While(
$row=mysql_fetch_object($result))
{
   
//Mostramos resultados los numeros de avisos que continen la informacion buscada

   
$idAviso=$row->IDAVISO;
    echo 
$idAViso."<br>";
}
  }
  } 
Cualquier ayuda sugerencia, o link a un mejor ejemplo de buscador se los agradezco enormemente
Muchas gracias desde ya
  #2 (permalink)  
Antiguo 01/03/2010, 09:03
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Buscador que no funciona

por que tienes esas dobles llaves al inicio???, me imagino que EN CASO exista el GET enviar deberia ejecutarse el code... entonces seria asi:

tabulando mejor el código...

ISSET, es en caso exista, EMPTY en caso no exista...

Código PHP:
<?
    
if(isset($_GET['Enviar'])){
        
//conexion a base de datos
        
include 'db.php';
        
        
//Los tipos de los campos a buscar son  TEXT con  indice FULLTEXT 
        // que en este caso son  los campos  txt2  y adicional
        
if ($busqueda!=""){
            
//CUENTA EL NUMERO DE PALABRAS
            
$trozos=explode(" ",$busqueda);
            
$numero=count($trozos);
            if (
$numero==1) {
                
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
                
$sql="SELECT idAviso, txt FROM avisos WHERE VISIBLE =1 AND txt2 LIKE '%$busqueda%' OR adicional LIKE '%$busqueda%' LIMIT 50";
            } elseif (
$numero>1) {
                
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
                //busqueda de frases con mas de una palabra y un algoritmo especializado
                
$sql="SELECT idAviso, txt , MATCH ( txt2, adicional ) AGAINST ( '$busqueda' ) AS Score FROM avisos WHERE MATCH ( txt2, adicional ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
                
                
$result=mysql_query($sql);
            }
            
            while(
$row=mysql_fetch_object($result)){
                
$idAviso=$row->IDAVISO;
                echo 
$idAViso."<br>";
            }
        }
    }
?>
por que tienes esos doble llaves al inicio?? {}{}
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 01/03/2010, 10:12
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Buscador que no funciona

Lo mismo me preguntaba yo. Las primeras líneas no tienen sentido.
TE adjunto parte del código de un buscador que hice hace un par de semanas. Incluso marca las palabras buscadas y muestra un trozo de texto a partir de las palabras buscadas.
Pruébalo:
Código PHP:
Ver original
  1. $cadenaBusqueda=$_POST['cadenaBusqueda'];
  2.  
  3.         $conexion=mysql_connect($dbserver,$dbuser,$dbpass);
  4.         mysql_select_db($db,$conexion);
  5.     if($_GET['avanzado']=="no") {
  6.         $sql="SELECT * , MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') as Score FROM tabla WHERE MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') ORDER BY Score DESC";
  7.     } else {
  8.         $sql="SELECT * , MATCH(titulo, texto) AGAINST ('$cadenaBusqueda') as Score FROM tabla WHERE etiqueta LIKE '%@-".$_GET['etiqueta']."-@%' AND MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') ORDER BY Score DESC";
  9.     }
  10.         $result=mysql_query($sql,$conexion) or die ("Error! " . mysql_error());
  11. $cuantosMsgForo=mysql_num_rows($result);
  12. $cuantosTtoales=mysql_num_rows($result);
  13.  
  14. $contenidoAMeter="<tr><td width=100% colspan=2 style='font-weight:bold;background-color:#565656;color:white;-moz-border-radius:8px 8px 0px 0px;'>".$cuantosTtoales." coincidencias encontradas</td></tr>";
  15.  
  16.         while($row=mysql_fetch_array($result)) {
  17.  
  18.             if($bandera==0) { $colorFondo="#ECF2FF"; $bandera=1; } else { $colorFondo="#D3E8FF"; $bandera=0; }
  19.  
  20.             $cadBus=explode(" ",$cadenaBusqueda);
  21.  
  22.         $asieio=join("|",$cadBus);
  23.  
  24.                  $func = preg_match("/(".$asieio."){1}.+/is",$row['texto'],$matches);
  25.             $cuantosarrayen=count($cadBus);
  26.  
  27.             $trozo=$matches[0];
  28.             $trozo=str_replace("'","&apos;",$trozo);
  29.             $trozo=str_replace('"',"&quot;",$trozo);
  30.             $trozo=str_replace('<br>'," ",$trozo);
  31.  
  32.             for($i=0; $i<$cuantosarrayen; $i++) {
  33.                 $trozo=str_ireplace($cadBus[$i],"<b><font color=black>".$cadBus[$i]."</font></b>",$trozo);
  34.             }
  35.  
  36.             $trozo=str_replace('['," <!--",$trozo);
  37.             $trozo=str_replace(' ]',"-->",$trozo);
  38.             $trozo=str_replace('\]',"-->",$trozo);
  39.             $trozo=substr($trozo,0,450);
  40.  
  41.  
  42.             $contenidoAMeter.="<tr style=background-color:".$colorFondo.";><td width=100%><a href='leer.php?id=".$row['id']."&marcar=".$cadenaBusqueda."'><strong>".$row['titulo']."</strong></a></td></tr><tr style=background-color:".$colorFondo.";><td width=100% style='border-color:#565656;border-width:0px;border-bottom-width:0px;border-style:solid;color:666666;'>...".$trozo."...</td></tr>";
  43.  
  44.         }
  45.         mysql_free_result($result);
  46.         mysql_close($conexion);
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: buscadores
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 17:49.