Buscador simple en PHP

Veremos cómo crear un buscador utilizando PHP y MySQL. El mismo consta de una base de datos, un formulario y un sencillo script escrito en PHP que realiza la búsqueda en la base de datos. Con algunas modificaciones, es posible realizar un buscador mucho más robusto, aunque el siguiente es ideal para realizar un buscador simple sin demasiadas exigencias.

Base de datos

Creamos una base de datos con tres campos: id, título y noticia.

CREATE TABLE `noticias` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`titulo` VARCHAR( 255 ) NOT NULL ,
`noticia` LONGTEXT NOT NULL
);

Código del buscador

En este ejemplo, tanto el formulario como el script PHP, se encuentran en la misma página:

<html>
<head>
<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<?
if ($_POST[‘buscador’])
{
// Tomamos el valor ingresado
$buscar = $_POST[‘palabra’];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost","usuario","password");
$sql = "SELECT * FROM noticias WHERE noticia like ‘%$buscar%’ ORDER BY id DESC";
mysql_select_db("base_de_datos", $con);

$result = mysql_query($sql, $con);

// Tomamos el total de los resultados
$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<p><b><a href="noticia.php?id=<?=$row[‘id’];?>"><?=$row[‘titulo’];?></a></b></p>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>
</body>
</html>

En caso de querer ubicar el formulario en otra página diferente solo debemos copiar el código del mismo:

<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>

Como mencionamos el comienzo de este artículo, el buscador sirve para realizar búsquedas simples en una base de datos. Con algunas modificaciones es posible realizar un buscador mucho más potente y personalizado a las necesidades del programador.

Deja un comentario

  • AntraxSec

    primer error
    Notice: Undefined index: buscador in C:xampphtdocsventas v06-pruebasbuscar.php on line 11

  • AntraxSec

    funciona gracias

  • ray

    yo no pude, toda palabra que yo ponga en la barra de
    busqueda siempre me arroja como resultado, No se encontraron resultados para:
    $buscar“; ya verifique la conexion con la base de datos
    y si esta conectado, y si tengo bien escrito lo que es la tabla y la columna
    donde debe de buscar el $sql = “SELECT, pero a pesar que la palabra lo
    tenga en la columna noticia, el codgio no lo encuentra, pero me he dado cuenta
    de algo y es que cuando crea la base de datos y tambien yo cree la tabla me di cuenta que aparecieron dos capetas una llamada Columnas y otra llamada Indice, y dentro de la carpeta Columnas esta la columna notica que fue la que yo cree, lo que me gustaria es que alguien me dijera si la palabra Columnas se tiene que integrar
    al $sql = “SELECT * FROM noticias WHERE noticia like ‘%$buscar%’ ORDER BY
    id DESC”; por favor que alguien me diga por que llevo horas y no puedo resolver este problema