Buscador Simple con PHP

En este artículo veremos como crear un buscador con PHP y MySQL que servirá para cualquier tabla MySQL de nuestra base de datos y que podrá ser mostrado facilmente en nuestro sitio web.

El script consta de tres partes. La configuración, el formulario y el proceso del formulario.

La primera parte, la más sencilla de todas, es donde tendrás que poner los datos de tu base de datos y la tabla donde quieres que el buscador realice las búsquedas. No tiene pérdida. Al final de la configuración realizamos la conexión a la base de datos ya que la usaremos cada vez que se acceda al buscador.

En la segunda parte se trata la creación del formulario. Como no conocemos los campos de la tabla tenemos que generar ese camop del formulario dinámicamente. Para ello utilizamos la sentencia “SHOW FIELDS FROM table” que nos devuelve información de todos los campos que hay en la tabla. De esta forma conseguimos que nos liste todos los campos de la tabla que hayamos escogido al configurar, en el formulario.

En la tercera parte, que solo se ejecuta si se ha enviado el formulario, se realiza la búsqueda con los datos obtenidos. Para ello utilizamos una sentencia de SQL de este tipo: “SELECT * from tabla WHERE campo LIKE ‘%valor%'” la cual nos devuelve todas las filas donde haya encontrado algo que contenga el valor en el campo seleccionado. Finalmente mostramos los resultados obtenidos utilizando un bucle para recorrer todos los campos de la tabla.

Configurar y subir, así de facil 🙂

Archivo: buscador_generico.php

<?php
// Buscador para tablas MySQL escrito en PHP.
 
////////////////////////////
// Configuración
///////////////////////////
 
//modifica estas variables según tu servidor de MySQL
$bd_servidor = “localhost”;
$bd_usuario = “pepito”;
$bd_contrasenya = “grillo”;
$bd_bdname = “mybd”;
$bd_tabla = “unatabla”; // Tabla donde se harán las búsquedas
 
// Conexión y selección de la base de datos
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
 
////////////////////////////
// Formulario
///////////////////////////
?>
<center>
<p><h2>Introduce las palabras para la búsqueda</h2></p>
<p><form name=”buscador” method=”post” action=”buscador_generico.php”><br>
Buscar en:
<select name=”campo”>
<?php
 
//Con este query obtendremos los campos por los cuales el usuario puede buscar
$result = mysql_query(“SHOW FIELDS FROM `$bd_tabla`”,$link);
while($row = mysql_fetch_row($result)) {
// en $row[0] tenemos el nombre del campo
// de esta manera no necesitamos conocer el nombre de los campos
// por lo que cualquier tabla nos valdrá
?>
<option value=”<?php echo $row[0]; ?>”><?php echo $row[0]; ?></option>
<?php
}
?>
</select>
Palabra(s): <input type=”text” name=”palabra”><br>
<input type=”submit” value=”Enviar” name=”enviar”>
</form></p>
</center>
<?
////////////////////////////
// Proceso del Formulario
///////////////////////////
if(isset($_POST[‘enviar’])) {
// Solo se ejecuta si se ha enviado el formulario$query = “SELECT * from $bd_tabla WHERE `{$_POST[‘campo’]}` LIKE ‘%{$_POST[‘palabra’]}%'”;
$result = mysql_query($query,$link);
$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;echo “<p>”;
foreach($row as $nombre_campo => $valor_campo) {// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.if(is_int($nombre_campo)) {

continue; //Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// índice numérico y otro con índice el nombre del campo.
// Solo nos interesa el del nombre del campo.
}
echo “<b>”.$nombre_campo.”</b> : “.$valor_campo.”<br>”;
}
echo “</p>”;
}
if(!$found) {
echo “No se encontró la palabra introducida”;
}

}
?>
Como siempre les digo, suerte y ojalá y les sirva…

2 thoughts on “Buscador Simple con PHP

  1. Hola gracias por tu ayuda entendi mas de lo que habia entendido anteriormente… al ejecutar tu ejemplo con las configuraciones de mi BD (la unica modificacion que le hice a tu ejemplo es el nombre de mi bd servidor contraseña y eso…) me sale el siguiente error solo al guardar Parse error: syntax error, unexpected ‘FIELDS’ (T_STRING), expecting ‘,’ or ‘)’ in C:\xampp\htdocs\asegurados\buscador_generico.php on line 40

    1. Marcos mira el problema ahi es que las comillas q tiene puesto es un caracter mal escrito [ ` ” ] , no se si es al copiarlo de la web al software de desarrollo que uses, pero es eso mi teclado lo probe en EN de Estados Unidos y utilice estos caracteres: [ ‘ ” ] a mi me dio el mismo error que a ti y cuando lo arregle me di cuenta que hay mas asi que debes cambiarlos todos, saludos y aqui estamos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *