Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Programar un buscador con PHP y MySQL
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Programar un buscador con PHP y MySQL

En este artículo voy a explicar como se puede hacer un buscador basado en MySQL y PHP. Supongo al lector familiarizado con la programación en PHP y la administración básica de MySQL.

Como punto de partida, la información a buscar la tenemos que tener almacenada en una tabla de nuestra base de datos. Pongamos como ejemplo una tabla con artículos técnicos que llamaremos ARTICULOS. Esta tabla ARTICULOS tendrá como mínimo dos campos llamados TITULO y DESARROLLO, que almacenarán el título del artículo y su contenido respectivamente.

Campos de la tabla

Los tipos de los campos a buscar deberán ser CHAR , VARCHAR o TEXT con sus variantes.

Ahora diseñaremos una página con un formulario y una caja de texto para escribir la cadena de consulta busqueda y llamar al script de búsqueda buscar.php . Ejemplo:

<FORM METHOD=POST ACTION="buscar.php"> Buscar: <INPUT TYPE="text" NAME="busqueda"> </FORM>

En el fichero buscar.php es donde está el click de la cuestión.

Hay que hacer la consulta que busque las palabras y devuelva como resultado los registros coincidentes. Hasta aquí parece fácil y podríamos resolverlo así:

SELECT * FROM ARTICULOS WHERE DESARROLLO LIKE '%$busqueda%' OR TITULO LIKE '%$busqueda%'

Pues esta consulta nos mostrará todos los artículos que en su titulo o en su contenido aparezca la frase de búsqueda tal y como nosotros la introducimos. Esto es muy limitado ya que un cambio en el orden de las palabras o un artículo de separación dará al traste con nuestra búsqueda no mostrando los resultados deseados.

Si bien podríamos depurar y mejorar la sintaxis de nuestra búsqueda utilizando el operador LIKE las búsquedas resultarían muy lentas y no tendrían el resultado esperado.

La solución mas eficiente es utilizar los índices FULLTEXT específicamente indicados para estos menesteres. Pues bien esto implica ir a nuestra base de datos, y crear un indice FULLTEXT con todos los campos que deseamos incluir en nuestra busqueda, que en nuestro caso son TITULO y DESARROLLO . Para ello basta con el phpmyadmin o bien escribir la instrucción directamente:

ALTER TABLE ARTICULOS ADD FULLTEXT(TITULO, DESARROLLO);

Índices de la tabla

Usuarios que han visto este tema también han visto...

- Rotador de banners en PHP
- Leer datos de un fichero CSV con PHP
- Leer Líneas de un archivo con la función file de PHP
- Manejo de múltiples archivos en PHP
- Proteger las direcciones de correo en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 13-02-2012 a las 09:26:10