Tutorial para crear un buscador PHP web muy sencillo con MySQL

Buscador PHP sencillo para MySQLUna de las utilidades más importantes que debe tener un desarrollo web cuando trabaja con bases de datos, es un buscador. En este artículo vamos a explicar cómo crear un buscador php web sencillo que nos permita localizar fácilmente un contenido.

Lo más eficiente cuando se trabaja con PHP es utilizar la popular base de datos MySQL, para más información sobre qué motor de MySQL utilizar visita el artículo MyISAM vs InnoDB, descubrirás las principales diferencias y ventajas de un modelo u otro.

Si bien es cierto que hay muchas formas de gestionar la comunicación con la base de datos, podría ser con leguaje estructurado, con programación orientada a objetos, en un solo archivo, etc., para nuestro ejemplo vamos a definir la conexión y dos funciones en la misma página.

Si estás interesado en el mundo del desarrollo web no dejes de visitar nuestro área de Programación y desarrollo web profesional con todos los servicios disponibles. Ahora os dejo con este buscador que es de gran ayuda para todos, principiantes y desarrolladores.

La base de datos con la que trabajamos este buscador es la de provincias (de España).

<?php // Primero definimos la conexión a la base de datos define(‘HOST_DB’, ‘localhost’); //Nombre del host, nomalmente localhost define(‘USER_DB’, ‘root’); //Usuario de la bbdd define(‘PASS_DB’, »); //Contraseña de la bbdd define(‘NAME_DB’, ‘spainprov’); //Nombre de la bbdd ?>

Formulario básico del buscador PHP web

Ahora toca definir un formulario donde poder realizar nuestras búsquedas o consultas.

<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>

Verificar la información recibida del formulario y seguimos los siguientes pasos:

  1. Primero controlamos que recibimos un post
  2. Eliminamos espacios en blanco a izquierda y derecha de la cadena a buscar
  3. Si el formulario de envió en blanco, lanzamos el aviso correspondiente
  4. Una vez nos aseguramos que se ha enviado una cadena para consultar, establecemos la conexión
  5. Montamos la consulta SQL, en nuestro ejemplo usamos un comparador LIKE para conseguir el máximo de información
  6. Si el existe un resultado, procedemos a almacenar la información necesaria
  7. Además si no hay datos, lanzamos el aviso correspondiente
  8. Finalmente cerramos la conexión y mostramos el contenido obtenido

Podéis ver el funcionamiento online del buscador web PHP, ver demo

Además puedes completar y mejorar el funcionamiento del buscador aplicando una función autocomplete que encontrarás en el tutorial Autocomplete PHP, MySQL y Jquery.

En definitiva y resumiendo mucho, este sería el código completo como resultado de nuestro tutorial buscador web PHP con MySQL.

Código fuente completo para desarrollar un buscador web PHP con MySQL

<?php

// AUTHOR: webreunidos.es

// Primero definimos la conexión a la base de datos

define(‘HOST_DB’, ‘localhost’); //Nombre del host, nomalmente localhost

define(‘USER_DB’, ‘root’);

//Usuario de la bbdd

define(‘PASS_DB’, »);

//Contraseña de la bbdd

define(‘NAME_DB’, ‘spainprov’); //Nombre de la bbdd

// Definimos la conexión

function conectar(){

global $conexion;

//Definición global para poder utilizar en todo el contexto

$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 resgistros encontrados

$registros = »;

if($_POST){

$busqueda = trim($_POST[‘buscar’]);

$entero = 0;

if (empty($busqueda)){

$texto = ‘Búsqueda sin resultados’;

}else{

// Si hay información para buscar, abrimos la conexión

conectar();

mysql_set_charset(‘utf8’);

// mostramos la información en utf-8

//Contulta para la base de datos, se utiliza un comparador LIKE para acceder a todo lo que contenga la cadena a buscar

$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 (por seguridad, no dejar conexiones abiertas) mysql_close($conexion);

}

}

?>

<!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>