Emilio Zapata

Andrade Propiedades ¿quieres ver otros proyectos?

In Andrade Propiedades on noviembre 30, 2012 at 12:56 am

Pasos a seguir para la creación de un buscador con PHP y MySQL. 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. 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 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);

Una vez creado el índice la instrucción SQL para buscar será:

SELECT * FROM ARTICULOS WHERE MATCH(TITULO, DESARROLLO) AGAINST (‘$busqueda’)

Esta línea utiliza la función MATCH … AGAINST … que encuentra el texto buscado, usando consultas en lenguaje natural parecido a como lo hacen los motores de búsqueda. Además, se calcula internamente una puntuación en función de como aparecen los términos buscados dentro de nuestro artículo.

 

Minibuscador php Andrade Propiedades NeoRod

Busca un texto, dentro de archivos de un directorio web, y lista los resultados con algun contenido del archivo.

<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>by NeoRod</title>
</head>
<body>
<h1>Minibuscador php de NeoRod</h1>
<p>Busca un texto, dentro de archivos de un directorio web, y lista los resultados con algun contenido del archivo. </p>
<form id=”form1″ name=”form1″ method=”get”>
Buscar Texto en pagina<input type=”text” name=”q”/>
<input type=”submit” value=”Buscar” />
</form>
<p>
<?php

$dir = “../colegio”; //colocas la carpeta donde va a buscar los temas
$directorio= @opendir($dir);
if(@opendir($dir)==TRUE)
{
$i=0;
while ($archivo = readdir($directorio))
{
if($archivo != ‘.’)
{
if(!is_dir(“$dir/$archivo”))
{
$neo[$i]=$archivo;
$i++;}
}

}
closedir($directorio);
if($_GET[“q”]!=””)
{
for($j=0;$j<count($neo);$j++)
{
$archivo=$neo[$j];
$fp = fopen($archivo,’r’);
//leemos el archivo
$texto = fread($fp, filesize($archivo));

if(eregi($_GET[“q”],$texto)==1)
{
$lugar=strpos($texto,”<p>”);
echo $prueba;
echo “<p><a href=$archivo>$archivo</a><br>”;
echo substr($texto, $lugar, 200);
}
}
}
}
else
echo “no puede abrirse el directorio o no existe<br>”
?>
</p>
<p>Atte. NeoRod </p>
</body>
</html>

Contacta con Andrade Propiedades

 

Mientras ponemos online a Andrade Propiedades quieres ver otros proyectos:

likes! | Arts | Inmobiliaria | indenxen | la sede | Nosotros | drome

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: