Manual de PHP

 
 
 

Mapa Web

 
borde   borde
Portada arrow Lista de Códigos PHP arrow Buscador Simple

 

Buscador Simple Imprimir E-mail

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

<?
// Buscador para tablas MySQL escrito en PHP. Por Alex para www.webtaller.com
// Creado el 13-10-2003


////////////////////////////
// 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";

}

}
?>

Alex.

 

 
Portada
Capítulos del Manual de PHP
Introducción a PHP
Variables
Mi Primer Script PHP
Operadores en PHP
Estructuras de Control
Funciones en PHP
Inclusión de código
Matrices (array)
Cadenas de Caracteres
Clases
Fechas
Entrada y Salida
Operaciones con Ficheros
El lenguaje SQL y PHP
Conexión con MySQL
Sesiones
Formularios con PHP
Practicar en línea
Lista de prácticas en línea
FAQ
Preguntas frecuentes
Códigos PHP
Lista de Códigos PHP
Foros
Foros PHP
Otros Manuales
Manuales de otros lenguajes
 
   
 
 
Alojamiento web en Hostalia