Portada » Lenguaje PHP » Búsqueda avanzada usando PHP y MySQLi

Búsqueda avanzada usando PHP y MySQLi

Búsqueda avanzada usando PHP y MySQLi. En el tema de realizar búsquedas avanzada de php tenemos muchas alternativas claras para filtrar los datos almacenados en una base de datos MySQL. En este artículo veremos cómo realizar búsquedas desde diferentes perspectivas, desde una simple búsqueda hasta utilizar criterios avanzados de filtro. Sin embargo, generalmente se realizan búsquedas de un campo y en este ejemplo mostraremos la búsqueda con varios criterios en la consulta.

Búsqueda avanzada usando PHP y MySQLi

En el formulario de búsqueda avanzada, tenemos entradas para buscar con respecto

  • Palabra exacta dada
  • Cualquier palabra de la frase
  • Excluir palabras de la cadena dada
  • También podemos elegir una columna de base de datos en la que se desea hacer la búsqueda.
Busqueda avanzada php mysql
Busqueda avanzada php mysql
  1. Creación de la base de datos

Necesitamos una base de datos con su respectiva tabla llamada «BUSQUEDA» y 3 columnas, veamos el ejemplo a continuación.

CREATE TABLE IF NOT EXISTS `busqueda` (
`id` int(11) NOT NULL,
  `titulo` varchar(200) DEFAULT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  `vinculo` varchar(100) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

--
-- Volcado de datos para la tabla `busqueda`
--

INSERT INTO `busqueda` (`id`, `titulo`, `descripcion`, `vinculo`) VALUES
(1, 'La vaca rosada', 'Mi vaca rosada esta contenta', 'http://yahoo.com'),
(2, 'El mono carlos', 'Mi mono carlos esta feliz con su banana', 'http://google.com');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `busqueda`
--
ALTER TABLE `busqueda`
 ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT de la tabla `busqueda`
--
ALTER TABLE `busqueda`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
  1. La conexión con la base de datos

Necesitamos crear un fichero llamado conexion.php, en la cual albergara las funciones y variables propias para realizar una conexión.

<?php
 $conn = mysqli_connect("localhost", "root", "root", "php_avanzada");	
 $with_any_one_of = "";
 $with_the_exact_of = "";
 $without = "";
 $starts_with = "";
 $search_in = "";
 $advance_search_submit = "";
?>
  1. Creación del formulario HTML

Para realizar búsquedas necesitamos apoyarnos de un formulario y que se puedan enviar las palabras claves mediante el método POST.

<form name="Busqueda_Avanzada" method="post" action="index.php">
        <input type="hidden" id="advance_search_submit" name="advance_search_submit" value="<?php echo $advance_search_submit; ?>">
        <span id="busqueda_avanzada" onClick="VerOcultarBusquedaAvanzada()">Busqueda Avanzada</span>
      <div class="caja_busqueda">
        <label class="search-label">Con una de las palabras:</label>
        <div>
            <input type="text" name="search[with_any_one_of]"  class="form-control" value="<?php echo $with_any_one_of; ?>"	/>
         </div>
         <div style="margin-top:10px;">
            <input type="submit" name="busqueda" class="btn btn-success" value="Buscar">
         </div>
       </div>
</form>
  1. Procesamiento de la información

En esta sección necesitamos implementar códigos PHP para que muestre las informaciones de la base de datos y lo imprima en el navegador.

<?php 
   if (isset($_POST["busqueda"])){
   $number=0;
while($row = mysqli_fetch_assoc($result)) { $number++;?>
	<div>
		<div><strong><?php echo $number;?>. <?php echo $row["titulo"]; ?></strong></div>
		<div class="verde"><strong><?php echo $row["vinculo"]; ?></strong></div>
		<div class="resultado_descripcion"><?php echo $row["descripcion"]; ?></div>
	</div>
<?php } ?>
<?php
$total = mysqli_num_rows($result);
if($total==0){
    echo 'No hay resultados encontrados';
}else{
    echo '<hr><b>Hay un total de '.$total.' resultados en su busqueda</b>';
}
			?>           
<?php }else{
	echo"<div><strong>Ingrese la palabra clave a buscar.</strong></div>";
} ?>
busqueda avanzada php
busqueda avanzada php
  1. Crear una condición php

Este código recibe el envio del formulario y verifica si realmente el usuario presiono en botón buscar, caso contrario muestra una leyenda «ingrese la palabra clave a buscar».

También, si no hay resultados imprime una leyenda «No hay resultados», caso contrario cuenta los resultados y muestra las cantidades de resultados encontrados de acuerdo a su criterio de búsqueda.

Búsqueda avanzada usando PHP y MySQLi
Búsqueda avanzada usando PHP y MySQLi

CONCLUSIÓN

Es muy recomendable implementar este código porque hace que nuestro sistema busque bajo cualquier criterio de filtro en nuestro sistema web. Haciendo, que nuestro trabajo sea eficiente.

DESCARGAS DEL CÓDIGO FUENTE

Descargar Código Fuente

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad