¿Te has preguntado alguna vez cómo mejorar la experiencia de usuario en tu sitio web? Uno de los elementos más cruciales es un buscador eficiente. No solo facilita la navegación, sino que también permite a los usuarios encontrar información de manera rápida y precisa. En este artículo, te guiaré a través del proceso de creación de un buscador sencillo utilizando PHP y MySQL. ¡Vamos a sumergirnos en el desarrollo web!

Creación de un buscador web sencillo con PHP y MySQL

Cuando se trata de desarrollo web, uno de los componentes más útiles y necesarios es un sistema de búsqueda. Ya sea para un blog, un sitio de comercio electrónico o una página informativa, contar con un buscador puede mejorar significativamente la experiencia del usuario.

Para este tutorial, utilizaremos PHP como lenguaje de programación y MySQL como sistema de gestión de bases de datos, dos herramientas muy populares en el desarrollo web. Si te interesa conocer más sobre las diferencias entre los motores de MySQL, te recomiendo que consultes el artículo sobre MyISAM vs InnoDB.

Antes de comenzar, es importante tener claro cómo se gestionará la conexión a la base de datos. Para este ejemplo, definiremos la conexión y las funciones necesarias en una sola página. Esto facilitará la comprensión y la implementación del buscador.

La base de datos que utilizaremos contendrá datos sobre las provincias de España, lo que nos permitirá realizar búsquedas específicas sobre este tema.

Definición del formulario para el buscador

El primer paso para crear un buscador es definir un formulario donde los usuarios puedan ingresar sus consultas. Aquí tienes un ejemplo de cómo estructurarlo:

<form id="buscador" name="buscador" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input id="buscar" name="buscar" type="search" placeholder="Buscar aquí…" autofocus>
    <input type="submit" name="buscador" class="boton peque aceptar" value="buscar">
</form>

Después de definir el formulario, es esencial verificar la información que se recibe. Aquí hay un resumen de los pasos a seguir:

  1. Verificar que se ha recibido un POST.
  2. Eliminar espacios en blanco alrededor de la cadena de búsqueda.
  3. Si el formulario se envió vacío, mostrar un mensaje de advertencia.
  4. Si hay una cadena válida, establecer la conexión a la base de datos.
  5. Construir la consulta SQL usando el operador LIKE para maximizar los resultados.
  6. Si hay resultados, almacenarlos para su visualización.
  7. Si no se encuentran datos, mostrar un mensaje correspondiente.
  8. Cerrar la conexión y mostrar los resultados obtenidos.

Puedes ver el funcionamiento online del buscador web PHP en este enlace.

Además, puedes enriquecer el buscador implementando una función de autocompletado. Para ello, visita el tutorial sobre Autocomplete PHP, MySQL y jQuery.

Código completo para el buscador web con PHP y MySQL

A continuación, presento el código necesario para desarrollar un buscador con PHP y MySQL. Este código incluye la conexión a la base de datos, la consulta y la presentación de resultados:

<?php
// AUTHOR: webreunidos.es
// Definimos la conexión a la base de datos
define('HOST_DB', 'localhost'); // Nombre del host, normalmente localhost
define('USER_DB', 'root'); // Usuario de la base de datos
define('PASS_DB', ''); // Contraseña de la base de datos
define('NAME_DB', 'spainprov'); // Nombre de la base de datos

// Definimos la conexión
function conectar() {
    global $conexion;
    $conexion = mysql_connect(HOST_DB, USER_DB, PASS_DB) or die('NO SE HA PODIDO CONECTAR AL MOTOR DE LA BASE DE DATOS');
    mysql_select_db(NAME_DB) or die('NO SE ENCUENTRA LA BASE DE DATOS ' . NAME_DB);
}

function desconectar() {
    global $conexion;
    mysql_close($conexion);
}

// Variable que contendrá el resultado de la búsqueda
$texto = '';
// Variable que contendrá el número de registros encontrados
$registros = '';

if($_POST) {
    $busqueda = trim($_POST['buscar']);
    $entero = 0;

    if (empty($busqueda)) {
        $texto = 'Búsqueda sin resultados';
    } else {
        conectar();
        mysql_set_charset('utf8'); // Muestra la información en utf-8
        // Consulta para la base de datos, se utiliza un comparador LIKE
        $sql = "SELECT * FROM prov_tab WHERE provincia LIKE '%" . $busqueda . "%' ORDER BY provincia";
        $resultado = mysql_query($sql); // Ejecución de la consulta

        // Si hay resultados...
        if (mysql_num_rows($resultado) > 0) {
            // Se recoge el número de resultados
            $registros = '<p>HEMOS ENCONTRADO ' . mysql_num_rows($resultado) . ' registros </p>';
            // Se almacenan las cadenas de resultado
            while($fila = mysql_fetch_assoc($resultado)) {
                $texto .= $fila['provincia'] . '<br />';
            }
        } else { 
            $texto = "NO HAY RESULTADOS EN LA BBDD"; 
        }
        // Cerramos la conexión
        desconectar();
    }
}
?>
<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta charset='utf-8'>
</head>
<body>
<h1>Ejemplo de buscador: by <a href="https://webreunidos.es" title="Más tutoriales en nuestra web" target="_self">webreunidos.es</a></h1>
<form id="buscador" name="buscador" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input id="buscar" name="buscar" type="search" placeholder="Buscar aquí…" autofocus>
    <input type="submit" name="buscador" class="boton peque aceptar" value="buscar">
</form>
<?php
// Resultado, número de registros y contenido.
echo $registros; 
echo $texto;
?>
</body>
</html>

Este código te proporciona un marco básico para construir tu buscador. Recuerda que la conexión a la base de datos puede variar dependiendo de la versión de PHP que estés utilizando. Para más información, consulta la web oficial de PHP.

Aspectos a considerar en el diseño de buscadores

Al desarrollar un buscador, hay varios aspectos importantes a tener en cuenta para garantizar su efectividad y usabilidad:

  • Facilidad de uso: El formulario debe ser intuitivo y fácil de localizar en la página.
  • Velocidad de búsqueda: Las consultas deben ser optimizadas para ofrecer resultados rápidos.
  • Relevancia de los resultados: Asegúrate de que los resultados devueltos sean pertinentes a la búsqueda realizada.
  • Feedback claro: Proporciona mensajes claros en caso de que no se encuentren resultados.
  • Accesibilidad: Considera a todos los usuarios, incluyendo aquellos con discapacidades, al diseñar el formulario.

Si deseas profundizar más en el diseño web y aprender sobre otras herramientas y técnicas, te invito a explorar nuestros servicios de Diseño de páginas web. Somos la empresa de diseño web «Nuevas Ideas Web» y estamos aquí para ayudarte a crear la web de tus sueños.




¿Quieres contactar con ideaWeb? ¿Necesitas un presupuesto web o gráfico?

ideaWeb
DISEÑO WEB MADRID

91 494 45 24

608 408 159

info@ideaweb.es

También puedes describirnos tu proyecto web o bien enviarnos tus propuestas, dudas o consultas para presupuesto de Diseño web, Posicionamiento SEO o Diseño de Logotipo:

ir al formulario de contacto