Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2011, 14:59
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Duda con buscador exacto de frases

Hola a todos! Quería hacerles una consulta en principio teórica para sacarme una duda aunque sea más que obvia y parezca tonta...
Para hacer un buscador ya sea de una palabre o de una frase, ¿qué es más recomendable utilizar? ¿LIKE O FULLTEXT?

Les comento xq esto... tengo armado para un sitio un buscador interno que lo implementé gracias a los aportes de los compañeros del foro. Les muestro el código:
Código PHP:
    include('conectar.php');
    
    
$CantxCol 4//Cantidad de columnas
    
$Cant 0// Variable para ser usada como contador


    // conexion a la base
    
$conexion mysql_connect($host_db$usuario_db$pass_db) or die ("no se ha podido conectar a la BD");
    
mysql_select_db($base_db$conexion) or die ("no se ha podido seleccionar la BD");

if(isset(
$_GET['buscar']) && $_GET['buscar'] == '>>'){ 
    
$txt_criterio htmlspecialchars($_GET['txt_criterio']);
   
   
$trozos=explode(" ",$txt_criterio);
   
$numero=count($trozos);


  
$sqlBuscar "SELECT * , MATCH (descripcion,categoria,linea) 
AGAINST ('$txt_criterio' IN BOOLEAN MODE) AS coincidencias FROM producto WHERE MATCH (descripcion,categoria,linea) 
AGAINST ('$txt_criterio' IN BOOLEAN MODE) ORDER BY coincidencias, producto.categoria, producto.cod_linea, producto.cod_articulo" 
or die(mysql_error());

$res mysql_query($sqlBuscar); 
$numeroRegistros mysql_num_rows($res);

//calculo el total de páginas, tamaño de la pagina 
$tamPag=10;
$tamPag2=16;

//pagina actual si no esta definida y limites 
if(!isset($_GET["pagina"])) 

$pagina=1
$inicio=1
$final=$tamPag
}else{ 
$pagina $_GET["pagina"]; 

//calculo del limite inferior 
$limitInf=($pagina-1)*$tamPag

//calculo del numero de paginas 
$numPags=ceil($numeroRegistros/$tamPag); 
if(!isset(
$pagina)) 

$pagina=1
$inicio=1
$final=$tamPag
}else{ 
$seccionActual=intval(($pagina-1)/$tamPag); 
$inicio=($seccionActual*$tamPag)+1

if(
$pagina<$numPags

$final=$inicio+$tamPag-1
}else{ 
$final=$numPags


if (
$final>$numPags){ 
$final=$numPags



  
$sqlBuscar "SELECT * , MATCH (descripcion,categoria,linea) 
AGAINST ('$txt_criterio' IN BOOLEAN MODE) AS coincidencias FROM producto WHERE MATCH (descripcion,categoria,linea) 
AGAINST ('$txt_criterio' IN BOOLEAN MODE) ORDER BY coincidencias, producto.categoria, producto.cod_linea, producto.cod_articulo LIMIT $limitInf, $tamPag2" 
or die(mysql_error());

$res mysql_query($sqlBuscar); 
}
..... 
El tema es que si coloco una frase, por ejemplo; faro grande me trae todos los resultados de faro y de grande por separado y lo que necesitaría es que me traiga los resultados de faro grande, así tal cual y luego los resultados si encuentra por separado.

¿Se puede arreglar mi código para poder hacerlo como lo necesito?

Desde ya muchas gracias nuevamente y saludos.
MArx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.