Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/02/2010, 08:26
hermess87
 
Fecha de Ingreso: julio-2007
Mensajes: 178
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Consejo para buscador de articulos

Gracias por tu respuesta! efectivamente por lo que se dice, esa es la manera correcta de hacerlo .

Lo malo es que lo estoy intentando poner en practica y no me funciona :s . Para colmo de males no me arroja ningun codigo de error, solo una pagina en blanco y no encuentro el error... dejo el codigo si alguien nota alguna confusion en el solo aviseme! y desde ya gracias por ser tant atentos!

Código HTML:
<?php

$dbhost="";  
$dbusuario=""; 
                     
$dbpassword=""; 
                      
$db="";       
$sql = mysql_connect($dbhost, $dbusuario, $dbpassword);



if ($p_busca!='')
{
if (!$num) $num=0;

//Separamos las palabras de la cadena a buscar
//Hacemos la separación usando cada espacio como separador
$cadena_buscada=explode(" ",$p_busca);

if (count($cadena_buscada)==1)
{

//Si solo hay una palabra usamos LIKE

$sql="
SELECT SQL_CALC_FOUND_ROWS titulo, autor
FROM productos
WHERE titulo LIKE '%".$p_busca."%' OR autor LIKE '%".$p_busca."%'
LIMIT ".$num.",10";
}
elseif (count($cadena_buscada)>1)
{

//Si hay más de una palabra usaremos MATCH AGAINST

$sql="
SELECT SQL_CALC_FOUND_ROWS titulo, autor, MATCH (titulo, autor)
AGAINST ('".$p_busca."') AS Score FROM productos
WHERE MATCH (titulo, autor) AGAINST ('".$p_busca."')
ORDER BY Score DESC LIMIT ".$num.",10";
}

$rs = $db->Execute($sql);
if (!$rs) echo $conn->ErrorMsg();
else if ($rs->fields["id"])
{
while (!$rs->EOF)
{
echo $rs->fields["titulo"].'<br>'.$rs->fields["autor"];
$rs->MoveNext();
}
}
else
echo 'No se han encontrado resultados correspondientes a su búsqueda.';

//Paginación
$rs_cont=$db->Execute ("select found_rows() as total_filas");
if ($rs_cont->fields["total_filas"]>10)
{
for ($i=0; $i<$rs_cont->fields["total_filas"] && $i<50; $i=$i+10)
{
$a++;
echo '<a href="buscar.php?p_busca='.$p_busca.'&num='.$i.'">['.$a.']</a>&nbsp;';
}
}
} ?>