index.php?id=116

Crear Buscador con PHP y MySql

Por Yal Publicidad


Publicado el Lun 10 de Enero del 2022 a las 22:22



En este tutorial veremos crear un buscador simple con PHP y MYSQL

En el siguiente ejemplo realizaremos un buscador simple de alumnos en MySQL y PHP.

Lo primero que realizaremos es crear la tabla 'alumnos.sql' con los siguientes campos:

ID
CODIGO
ALUMNO

alumnos.sql

CREATE TABLE `yalpubli_ydb`. ( 
`id` INT(11) NOT NULL AUTO_INCREMENT , 
`codigo` VARCHAR(10) NOT NULL , 
`alumno` VARCHAR(155) NOT NULL , 
PRIMARY KEY (`id`), 
FULLTEXT (`alumno`)) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;

Debemos tener en cuenta que el campo 'alumno' debe ser creado con índice FULLTEXT. Ahora vamos a crear el buscador en PHP usando dos instrucciones MATCH ... AGAINST ... que encuentra el texto buscado, usando consultas en lenguaje natural parecido a como lo hacen los motores de búsqueda avanzada y LIKE que nos mostrará todos los resultados que en su titulo o en su contenido aparezca la frase de búsqueda tal y como nosotros la introducimos, esto es muy limitado.

buscar.php

extract($_POST);
extract($_GET);
//cadena de conexion
$conn = mysqli_connect("host","usuario","password");
// Recibo las palaras a buscar
if (!empty($q)){
  //Cuento número de palabras
  $palabras=explode(" ",$q);
  $numero=count($palabras);
  if ($numero==1) {
    //SI HAY UNA PALABRA SE ESTABLECE UNA INSTRUCION LIKE
    $where="SELECT * FROM alumnos WHERE alumno LIKE  '%$q%' LIMIT 0,50";
  } elseif ($numero>1) {
    //SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO AVANZADO MATCH... AGAINST...
    $where="SELECT * FROM alumnos WHERE
      MATCH(alumno) AGAINST('$busqueda') ORDER  BY alumno ASC LIMIT 0,50";
  }
  $result=mysqli_query($conn, $where);
  While($row=mysqli_fetch_array($result))
  {
    //Mostramos los nombres de los alumnos
    $codigo = $row['codigo'];
    $alumno = $row['alumno'] . ' (CÓDIGO: ' . $codigo . ')';
    echo $alumno."
"; } }


Deja un comentario:
Buscar
Acerca de Nosotros
@yalpublicidad Agencia de publicidad online. 21 años de experiencia en el diseño y desarrollo de imagen e identidad corporativa de tu empresa...