Foros del Web » Programando para Internet » PHP »

Buscador en PHP

Estas en el tema de Buscador en PHP en el foro de PHP en Foros del Web. Estoy intentando hacer un buscador en php sobre un directorio,tipo yahoo. No se si hay un script que te haga todo esto ya,o alguna web ...
  #1 (permalink)  
Antiguo 12/07/2003, 10:59
 
Fecha de Ingreso: julio-2003
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Buscador en PHP

Estoy intentando hacer un buscador en php sobre un directorio,tipo yahoo.
No se si hay un script que te haga todo esto ya,o alguna web donde den indicacions porque ando un poco perdido.
Primero tengo que hacer la base de datos en mysql,y despues definir parametros en php.
Espero ayuda.
Gracias.
  #2 (permalink)  
Antiguo 12/07/2003, 11:10
 
Fecha de Ingreso: julio-2003
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
No hace falta que me contesten.
No busque antes de preguntar y creo que ya encontre lo que quiero.
Disculpen las molestias.

Un saludo.
  #3 (permalink)  
Antiguo 12/07/2003, 11:55
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Hola _LAZSLO_ yo tengo uno hecho que realiza las busquedas en los campos de la base de datos, pero me intesaría saber como se realiza para que busque en directorios, me puedes pasar el link que donde has encontrado la información de como hacerlo.

Un saludo.
  #4 (permalink)  
Antiguo 12/07/2003, 13:14
 
Fecha de Ingreso: mayo-2003
Mensajes: 119
Antigüedad: 14 años, 7 meses
Puntos: 0
hola Zertiko, yo ando buscando uno que busce info en una base de datos de un sitio, me puedes echar una mano?
gracias
Andrea
__________________
Saludos
  #5 (permalink)  
Antiguo 12/07/2003, 20:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
Hola Andrea,

Púes yo lo tengo hecho de la siguiente forma:

Primero creas el formulario para realizar las busquedas en el action le metes como destino la pagina que tiene el script que te realizará la busqueda, despues separas las palabras de la cadena que vendra del buscador del siguiente modo

$array_palabras=explode(" ",$_POST['BUSCADOR']);

Despúes cuentas el total de las palabras que sean generado en el array (es decir el total de los elementos del array)

$total_palabras=count($array_palabras)-1;

Después recorres el array generado por el explode

for ($indice=0; $indice<=$total_palabras; $indice++){
$secuencia_buscar="Claves LIKE '%".$array_palabras[$indice]."%'";

se mira si es la ultima palabra a poner . en tal caso no se pone el OR ..

if ($indice < $total_palabras){
$condicion=" OR ";
} else {
$condicion="";
}


se concatena (he de ahí el .= la secuencia anterior con el comando de la condicion ..

$secuencia_total .= $secuencia_buscar.$condicion;
}

se concatena la secuencias de campo LIKE '%palabra%' AND .. con el SQL
si hace falta mas parámetros o condiciones .. añadir al final ...

$sql = "SELECT * FROM $tabla WHERE ".$secuencia_total." ORDER BY Titulo ASC";

Con esto ya tendría lo que es la consulta a la BD después ya es facil ejecuta dicha consulta recorrela con un mysql_fetch_array y un bucle while.

Un saludo.
  #6 (permalink)  
Antiguo 14/07/2003, 05:26
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Yo trato también de hacer un buscador, lo he probado de mil formas, y exactamente como lo pones tu en este post... y la sentecia de la consulta es :

SELECT * FROM admin WHERE '.Claves LIKE '%%'.'

He entendido mal el post? que estoy haciendo mal?

ALGUIEN PUEDE AYUDARME? ES MUY IMPORTANTE
  #7 (permalink)  
Antiguo 14/07/2003, 22:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Enea .. www.mysql.com fijate bien en la sintax de LIKE ..

El ejemplo que pones .. (si así lo entiendo) .. deberías usar simplemente:

Código PHP:
$sql="SELECT * FROM admin WHERE Claves='$clave'"
El "LIKE" y con los "comodines" (%) delante y detras de una posible cadena .. podría darte como "Claves" correcta algo que contenga la cadena a buscar ... Y eso no creo que sea lo que estás buscando ..

Si vas hacer un simple buscador de una cadena en un campo de tu BD (en cualquier posición de la misma) .. puedes usar:

Código PHP:
$sql="SELECT * FROM tabla WHERE campo LIKE '%".$palabra_buscar."%'"
Revisa la sintax de LIKE en el manual de Mysql .. una cosa es "PHP" y otra SQL .. Si tienes problemas en el uso de concatenación de strings (cadenas) avisa .. pero en www.php.net (24x7x365) lo tienes a tu disposición (por si te sugen urgencias).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 08/08/2003, 12:26
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Cluster, estoy usando esa sentencia para un buscador sencillo, la tengo así:

$sql="SELECT * FROM noticias WHERE noticia LIKE '%".$palabra."%'";

luego la tomo en un array

tomo la consulta en una variable result
$sql="SELECT * FROM noticias WHERE noticia LIKE '%".$palabra."%'";

y luego se valida el array así y hago este bucle:

Código PHP:
if ($rowmysql_fetch_array($result))
{
   echo 
"<TABLE BORDER='0'>";
   DO
   {
     echo 
$row["noticia"];
   }
   WHILE (
$row=mysql_fetch_array($result));
   echo 
"</TABLE>";
}
else
echo 
"No hay resultados que mostrar";
mysql_close ($conexio);
?> 
pero sin importar lo que venga en la variable $palabra me muestra todo el contenido de la columna "noticia", supongo que lo que esta mal es
echo $row["noticia"];
pero ni idea de como seria para que haga lo que quiero, ya probe de varias formas pero nada.
  #9 (permalink)  
Antiguo 09/08/2003, 03:48
 
Fecha de Ingreso: agosto-2003
Ubicación: Santiasco-Chile
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
yo hice todo lo que dijeron y me tira este error

{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\froman\ fcharset0 Times New Roman;}{\f1\fnil\fcharset0 Courier New;}} \viewkind4\uc1\pard\sb100\sa100\lang3082\f0\fs24 < ?php \line\line include("http://centinelatalakoz.webcindario.com/form.html"); \line\line $sql="SELECT * FROM noticias WHERE"'%".$palabra."%' "; \line $result=mysql_query($sql,$link); \par \line if ($row= mysql_fetch_array($result)) \line\{ \line echo ""; \line DO \line\{ \line echo "$row["documento"]"; \line\} \line WHILE ($row=mysql_fetch_array($result)); \line echo " "; \line\} \line mysql_close ($link); \line ?> \f1\fs20\par }




que hice mal? =(
  #10 (permalink)  
Antiguo 09/08/2003, 10:55
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 15 años, 5 meses
Puntos: 0
Primero que nada yo resolvi el tema, el problema es que por el tiempo que llevo retirado de php habia olvidado el tema de register_global On/Off y ese era el tema que no me reconcoia la variable $palabra.


Tu problema lo que parece es que no tienes php configurado con tu servidor Web pues te esta mostrando todo el codigo fuente.
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 04:18.