Foros del Web » Programando para Internet » PHP »

Hacer un Buscador en PHP

Estas en el tema de Hacer un Buscador en PHP en el foro de PHP en Foros del Web. Hola a todos!!! H realizado un portal en PHP, todo a mi manera, considero que no lo he hecho de forma profesional porque apenas estoy ...
  #1 (permalink)  
Antiguo 01/11/2004, 05:08
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Hacer un Buscador en PHP

Hola a todos!!!

H realizado un portal en PHP, todo a mi manera, considero que no lo he hecho de forma profesional porque apenas estoy aprendiendo PHP, la cuestion es que con el tiempo el portal ha ido creciendo y ahora tengo muchassssssss paginas en php, y necesito crear un buscador para el portal, donde al go poner una palabra o varias pues me las busque en todo el texto que se encuentren en todos los archivos PHP de mi portal
¿es posible esto? ¿que tan dificil es? ¿como se hace?

Del mismo modo dentro del portal tengo un seccion de un periodico Electronico donde todo el contenido del mismo lo tengo guardado en una BD en MySQL, cada edicion del periodico son diferente tablas en la BD, y tambien necesito hacerle un buscador en el periodico, pero en este caso la busqueda la va a hacer en la BD, le puse un campo clave a cada tabla que se llama PALABRAS_CLAVES donde ahi yo deberia agregar varias palabras claves a las que esta relacionada el articulo que se publica, (OJO esto no se si esta bien hecho, fue una idea que se me ocurrio, pero no se si esto se hace asi o hay una mejor manera). Entonces me gustaria saber cual es la mejor forma y mas facil y efectiva de realizar este buscador en mi BD pero que yo lo pueda hacer con diferentes palabras, es decir que pueda escribir 3 palabras en el buscador y me consiga los articulos que tienen esas palabras, tanto en los articulos como en el campo PALABRAS_CLAVES.

No se si les estoy pidiendo mucho pero si necesito la ayuda en verdad, es para mi trabajo actual y requiero de la ayuda u orientacion pero al principio aunque sea el codigo base o la idea principal para yo luego desarrollarla.
MUCHAS GRACIAS: BYE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #2 (permalink)  
Antiguo 01/11/2004, 15:13
 
Fecha de Ingreso: septiembre-2004
Mensajes: 55
Antigüedad: 13 años, 3 meses
Puntos: 0
En la DB pos ahces el formulario en html , luego por ejemplo el campo de texto se llama buscar tones

$busqueda=$_POST["buscar"]

tonces
SELECT * FROM periodico LIKE '%$busqueda%'

:)

yo tengo mi duda ojala alguien sepa necesito ahcer tambien un buscador, pero con categorias ejemplo Anime General -> Las Webs y necesito ahcer un <select> con asl categorias y guardar als en la db con los datos d ela web, pero no se ocupo una columna para cad categoria o una tabla para cada categoria.

esto es el code que llevo

Código:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
  <p>&nbsp;</p>
  <p align="center">&nbsp;</p>
  <p align="center">&nbsp;</p>
</div>
<form name="form1" method="post" action="buscar.php">
  <div align="center">
    <input name="buscar" type="text" id="buscar">
    <input type="submit" name="Submit" value="Buscar">
  </div>
</form>
</body>
</html>
buscar.php
Código:
<html><head><title>Anime Search</title></head><body>
<? 

include("config.php");

$busqueda = $_POST["buscar"];

$con = mysql_connect("localhost","$userdb","$passdb"); 

mysql_select_db("$basedatos",$con);

$result=mysql_query("SELECT * FROM busqueda WHERE descripcion LIKE '%$busqueda%' ORDER BY id desc", $con) or die ("No se han Encontrado Resultados");

if(empty($busqueda)){ 

echo "Debes ingresar Una Palabra para Realizar la busqueda";
 
}elseif(isset($result)){

while($row=mysql_fetch_array($result))
{

$nombre = $row["nombre"];
$descripcion = $row["descripcion"];
$categoria = $row["categoria"];
$url = $row["url"];
$urlbanner = $row["banner"];


  echo  '<a href="'. $url .'">'.$nombre.'</a><br /><br>'. $descripcion. '<br><br>';
 
 echo '<br><img src="'. $urlbanner. '"><br><br>';}

}else{ echo "No se Encontraron Registros U_U";}
 
?></body></html>
Pero si pongo alguna palabar que no la encuentra no me funciona ni else ni el or die. Ademas necesito hacerlo por categoria y ahcer el formulario

AYUDA ES URGENTE
__________________
Proximamente Rincon Ota on line.
  #3 (permalink)  
Antiguo 05/11/2004, 13:49
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 13 años, 1 mes
Puntos: 0
wenas, si miras en el repositorio publico de la pagina d lla escuela superior de informatica de sevilla (informatica.us.es) tienes un ejemplo de portal con buscador (RecordStore). Yo me lo he bajado y funciona. Echale un vistazo. suerte

Salu2
  #4 (permalink)  
Antiguo 06/11/2004, 14:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
cada edicion del periodico son diferente tablas en la BD,
Creo que no deberìas enfocar màs esfuerzos en tu "primera versiòn de tu portal" .. Intenta leer sobre Base de datos .. en concreto sobre temas de "Normalizaciòn" para mejorar tu "modelo de datos" y así facilitar tanto la relaciòn de tus datos (para futuras mejoras) .. principalmente para implementar buscadores de todo tipo de forma optima (ejemplo: usando busquedas de "texto completo" (full text search)) en tus BD. Si usas ese método .. no requieres de campos con "palabras clave" . por què buscarías en el contenido de tus campos de tu BD y .. hasta con opción de dar los resultados por "coincidencias" (como hace google y cualquier buscador)...

En fin .. como veras, un buen modelo de datos .. dá para mucho (y sin excesivas complicaciones) .. por eso te recomiendo no "parchear" lo que ya tienes y .. enfocar tus esfuerzos a una "versión 2.0" de tu "portal".

De todo esto tienes tutoriales en:
www.mysql-hispano.com

(Te recomiendo el de "Normalizaciòn" y el de "Busquedas de texto completo")

Un saludo,
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 05:15.