Foros del Web » Programando para Internet » PHP »

Buscador Match Against

Estas en el tema de Buscador Match Against en el foro de PHP en Foros del Web. Hola Tengo una pagina buscar.php que realiza una busqueda de articulos en una tabla de una base de datos. El problema que tengo es con ...
  #1 (permalink)  
Antiguo 03/01/2013, 19:44
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Buscador Match Against

Hola

Tengo una pagina buscar.php que realiza una busqueda de articulos en una tabla de una base de datos.
El problema que tengo es con el buscador Match Againt(me busca mas de 1 palabra), no me arroja ningun resultado. Las palabras estan en la tabla de la Base de datos, pero me arroja una pagina en blanco.
La tabla yo define con motor MyIsam, porque con InnoDB me salía un error.
He probado muchas veces pero me sigue tirando una pagina en blanco, como si no encontrase la frase, pero las frases estan en la tabla.
Tengo 2 campos con indices FULLTEXT que son titulo y desarrollo. y un clave primaria llamada referencia.

El codigo es el siguiente:

Cita:
<?php
//cadena de conexion
mysql_connect("localhost","root","");

//selecciona base de datos
mysql_select_db("actualizacion");

//debo preparar los textos que voy a buscar si la cadena existe
if($_POST["busqueda"]<>''){
//cuenta el numero de palabras
$trozos = explode(" ",$_POST["busqueda"]);
$numero = count($trozos);
$busqueda = $_POST["busqueda"];
if($numero == 1){
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCCION CON LIKE
$cadbusca = "SELECT referencia, titulo FROM articulos WHERE desarrollo LIKE '%$busqueda%' OR titulo LIKE '%$busqueda%' LIMIT 50";

}elseif($numero > 1){
//SI HAY UNA FRASE SE UTILIZA EL ALGORITMO DE BUSQUEDA AVANZADO DE MATCH AGAINST.
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca = "SELECT referencia, titulo , MATCH (titulo, desarrollo) AGAINST ( '$busqueda' ) AS Score FROM articulos WHERE MATCH (titulo, desarrollo) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
}
$result= mysql_query($cadbusca) or die(mysql_error());
while($row = mysql_fetch_object($result)){
//mostramos los articulos de los articulos o lo que deseamos...
$refer = $row->referencia;
$titulo = $row->titulo;
echo $refer . " - " . $titulo . "<br>";
}
}
?>
Me pueden Ayudar. Gracias.
  #2 (permalink)  
Antiguo 03/01/2013, 19:57
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 137
Respuesta: Buscador Match Against

que error te sale, ya probaste la consulta en el phpmyadmin?
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 04/01/2013, 09:22
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Buscador Match Against

Hola

El buscador MATCH AGAINST si lo he probado varias veces en la consulta del PhpMyAdmin, igual me dice:
Cita:
MySQL ha devuelto un conjunto de valores vacío (es decir: cero columnas). ( La consulta tardó 0.0005 seg )
En otras palabras no encuentra nada, pero eso es mentira porque le pongo palabras que si figuran en la tabla de articulos, entonces la misma pregunta:
¿Cual es el problema que no me muestra los articulos que si estan en la tabla?

Otra vez pido su ayuda. Gracias.

Etiquetas: match, mysql, sql, tabla, 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 14:10.