Foros del Web » Programando para Internet » PHP »

Consejo para buscador de articulos

Estas en el tema de Consejo para buscador de articulos en el foro de PHP en Foros del Web. Hola muchachos! espero que estén bien! Les comento que estoy armando una tienda virtual, ya casi la tengo terminada, solo me falta crear el buscador ...
  #1 (permalink)  
Antiguo 23/02/2010, 07:42
 
Fecha de Ingreso: julio-2007
Mensajes: 178
Antigüedad: 17 años, 4 meses
Puntos: 1
Consejo para buscador de articulos

Hola muchachos! espero que estén bien!

Les comento que estoy armando una tienda virtual, ya casi la tengo terminada, solo me falta crear el buscador de productos. Les queria pedir su consejo (ya que siempre este ha estado bien orientado :p ). Estuve buscando códigos googleando pero no logro darme cuenta que es exactamente que me conviene.

Lo que quiero es que en mi tabla de productos (bd mysql), se busque por titulo, autor y búsqueda (un campo con palabras clave para el buscador).

La idea parece simple, pero quisiera hacerlo de la forma mas limpia y rapida.... alguien tiene alguna sugerencia o consejo , algún enlace o código... Cualquier comentario me es util!

Bueno desde ya les agradezco muchísimo como siempre!
  #2 (permalink)  
Antiguo 23/02/2010, 07:48
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Consejo para buscador de articulos

mm puedes usar funciones de búsqueda de texto completo...
te dejo un link
http://dev.mysql.com/doc/refman/5.0/...xt-search.html

saludos y suerte con eso
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 23/02/2010, 08:26
 
Fecha de Ingreso: julio-2007
Mensajes: 178
Antigüedad: 17 años, 4 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;';
}
}
} ?> 
  #4 (permalink)  
Antiguo 23/02/2010, 08:38
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Consejo para buscador de articulos

te falta seleccionar la base de datos
mysql_select_db();

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 23/02/2010, 08:43
 
Fecha de Ingreso: julio-2007
Mensajes: 178
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Consejo para buscador de articulos

Cita:
Iniciado por Hidek1 Ver Mensaje
te falta seleccionar la base de datos
mysql_select_db();

saludos!
Lo siento, pegue el codigo cuando habia borrado eso porque estaba probando...
pero enrealidad ya la seleccione asi

Código HTML:
mysql_select_db($db, $sql);
pero me tira la pagina en blanco....
  #6 (permalink)  
Antiguo 23/02/2010, 10:54
 
Fecha de Ingreso: julio-2007
Mensajes: 178
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Consejo para buscador de articulos

Listo gracias por su ayuda!! Lo solucione como dijiste. Asi :

Código HTML:
<?php
$buscar = $_POST["buscar"];
include "cometin/listar_articulos/conectarbd.php";

$sql= "SELECT titulo, autor, MATCH (titulo, autor) AGAINST ('$buscar') AS Score FROM productos WHERE MATCH (titulo, autor) AGAINST ('$buscar') ORDER BY Score DESC LIMIT 50 ;";

$resultados = mysql_query($sql,$conexion) or die("Error en $consulta <br>MySQL dice: ".mysql_error());

while($row = mysql_fetch_array($resultados)) { 
   echo '<br>'.$row["titulo"].'-'.$row["autor"];
}

include "cometin/listar_articulos/cerrarconexionbd.php";
?>


Etiquetas: articulos, consejo, 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 12:07.