Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/08/2007, 16:24
Avatar de monjeruiz
monjeruiz
 
Fecha de Ingreso: junio-2007
Ubicación: Santiago, Chile
Mensajes: 113
Antigüedad: 17 años, 5 meses
Puntos: 3
Re: como funciona la busqueda con MATCH AGAINST

el codigo que estoy ocupando para la busqueda es:
Código PHP:
<?
    
include("../config/conexion.php"); 
       
$link conectar(); 

    
$busqueda=$_POST['busqueda'];
    
// Debo preparar los textos que voy a buscar si la cadena existe
    
if ($busqueda<>'')
    {
        
//Cuenta el numero  de palabras
        
$trozos=explode(" ",$busqueda);
        
$numero=count($trozos);
        if (
$numero==1
        {
            
$cadbusca="SELECT * FROM inventario_computador WHERE 
            empresas LIKE '%$busqueda%' 
            OR departamentos LIKE '%$busqueda%' 
            OR usuario LIKE '%$busqueda%';"
;
        }
        elseif (
$numero>1
        {
            
//Si hay una frase se utiliza el algoritmo de busqueda avanzada de MATCH AGAINST
            //busqueda de frases con mas de una palabra y un algoritmo especializado
            
$cadbusca="SELECT * , 
            MATCH ( empresas, departamentos, usuario ) 
            AGAINST ('$busqueda') 
            AS Score FROM inventario_computador 
            WHERE MATCH ( empresas, departamentos, usuario ) 
            AGAINST ('$busqueda') ORDER BY Score DESC LIMIT 5;"
;
        }
        
$result=mysql_query($cadbusca$link) or die( mysql_error() );
        
$i=1;
        while (
$row mysql_fetch_array($result))
        {
    
            echo 
"<table width='950' align='center' cellspacing='2'>";
            echo 
"<tr bgcolor='#E3E9F1'>";
            echo 
"<td width='70' class='textarea' align='left'>".$row['numero_factura']."</td>";
            echo 
"<td width='70' class='textarea' align='left'>".$row['numero_serie_computador']."</td>";
            echo 
"<td width='120' class='textarea' align='left'>".$row['empresas']."</td>";
            echo 
"<td width='120' class='textarea' align='left'>".$row['departamentos']."</td>";
            echo 
"<td width='110' class='textarea' align='left'>".$row['realizado_por']."</td>";
            echo 
"<td width='120' class='textarea' align='left'>".$row['solicitado_por']."</td>";
            echo 
"<td width='110' class='textarea' align='left'>".$row['usuario']."</td>";
            echo 
"<td width='70' class='textarea' align='left'>".$row['proveedor']."</td>";
            echo 
"<td width='60' class='textarea' align='left'>".$row['marca_computador']."</td>";
            echo 
"<td width='16' class='textarea' align='left'> <a href='../computador/consulta.php?numero_factura=".$row['numero_factura']."'target=\"_blank\"><img src='../imagen/consulta.png' width='11' height='11' border='0' title='CONSULTAR INVENTARIO'></a></td>";  
            echo 
"<td width='16' class='textarea' align='left'> <a href='../computador/modificar.php?numero_factura=".$row['numero_factura']."'target=\"_blank\"><img src='../imagen/actualizar.png' width='11' height='11' border='0' title='MODIFICAR INVENTARIO'></a></td>";  
            echo 
"<td width='16' class='textarea' align='left'> <a onclick=\"eliminarDato('".$row['numero_factura']."')\"><img src='../imagen/eliminar.png' width='11' height='11' title='ELIMINAR INVENTARIO'></a></td>";  
            echo 
"</tr>";
            echo 
"</tabla>";
        
$i++;
        }
    }
?>
y la base de datos es, tabla (inventario_usuario)
campos (id(key) -> int3, empresas(index fulltext) text20, departamentos(index fulltext) text20, usuarios(index fulltext) text20)
y al buscar (jose monje -> error: Can't find FULLTEXT index matching the column list) y al buscar (jose)todo bien

favor ayudarme gracias
__________________
[B]Ingeniero en Informatica
Jose Monje Ruiz [/b]