Ver Mensaje Individual
  #18 (permalink)  
Antiguo 31/07/2005, 15:58
mvlsistemas
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Bueno les cuento, intentando hacer un buscador interno para mi web logré esto, ya funciona pero no es lo que buscaba, lo dejo por si les sirve.

La BD tiene 1 tabla llamada contenido, con 5 campos: id,palac, link, titulo, contenidos .Donde id es autonumérico, palac serían los productos o palabras claves(ahi me tildo), link sería la dirección o el archivo.htm que teorícamente contiene esas palac, en titulo ingresé la descripción del artículo y en comentarios algunas palabras relacionadas a la palac.

he cargado 5 registros solamente para probar.

el formulrio es el siguiente:
Código:
<FORM METHOD=POST ACTION="buscador.php">
Buscar: <INPUT TYPE="text" NAME="busqueda">
<input type="submit" name="Submit" value="Buscar">
</FORM>
y te devuelve:

cables - cables.htm

Lo que no puedo lograr es que al menos el cables.htm me lo tirara como www.midominio.com.ar/cables.htm y de ser posible que me redireccione a www.midominio.com.ar/cables.htm sería lo ideal


Este es el archicvo buscador.php que subí al servidor tal cual como está aquí:

Código PHP:
<?php
//cadena de conexion
$link=mysql_connect("localhost","us","pass");
mysql_select_db("name bd");

// 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);

if (
$numero==1) {
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
 
$cadbusca="SELECT  palac, link FROM contenido WHERE palac =1
      AND titulo LIKE  '%$busqueda%' OR comentarios LIKE  '%$busqueda%' LIMIT 50"
;
}
elseif (
$numero>1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
 
$cadbusca="SELECT  titulo, comentarios, MATCH ( titulo, comentarios )
      AGAINST (  '$busqueda' ) AS Score FROM contenido WHERE
      MATCH ( titulo, comentarios ) AGAINST (  '$busqueda' ) ORDER  BY Score DESC LIMIT 50"
;
}

$result=mysql_query($cadbusca,$link) or die(mysql_error());
While(
$row=mysql_fetch_object($result))
{
//Mostramos los titulos de los articulos o lo que deseemos...
$referencia=$row->palac;
$titulo=$row->link;
echo 
$referencia." - ".$titulo."<br>";
}
}
?>
Gracias a Jam y Claudio vega por el php

Por favor, acepto todas sugerencias y después que les sirva a los que como yo terminaron intentandoló.