Buscar Coincidencias en Base de Datos para Seleccionar Registro en el Mismo Input PHP [SOLUCIONADO]

A través de este artículo, vamos a ampliar nuestros conocimientos en PHP y las operaciones con bases de datos. En particular, tratemos sobre cómo buscar coincidencias en la base de datos para seleccionar registros desde el mismo campo de entrada.

Cuando se trabaja con grandes cantidades de información, la necesidad de buscar y filtrar esa información es muy común. En PHP, existen varias técnicas para lograr este objetivo, y una de las más efectivas es la consulta SQL SELECT.

$conexion = mysqli_connect("localhost", "usuario", "contraseña", "base_datos");     
        
$busqueda = $_GET['busqueda'];       
        
$query = "SELECT * FROM tabla WHERE columna LIKE '%$busqueda%'";        
        
$result = mysqli_query($conexion, $query);        
        
if(mysqli_num_rows($result) > 0) {      
  while($fila = mysqli_fetch_assoc($result)) {      
    echo $fila["columna"];      
  }        
}      

En este código, hemos aplicado la técnica de buscar coincidencias en base de datos para seleccionar registro en un input. Aquí, la cláusula LIKE de SQL se usa junto con los caracteres comodín para buscar cualquier coincidencia de la palabra o frase ingresada en la caja de búsqueda.

Aquí, es importante mencionar que el uso óptimo de las consultas en PHP requiere un conocimiento sólido de la sintaxis y las declaraciones SQL.

Mientras que LIKE ‘%$busqueda%’ buscará coincidencias en cualquier lugar del valor de la columna, LIKE ‘%$busqueda’ buscará coincidencias que terminen con la frase ingresada y LIKE ‘$busqueda%’ buscará coincidencias que comiencen con la frase ingresada.

$query = "SELECT * FROM tabla WHERE columna LIKE '$busqueda%'";

Ahora, aunque este enfoque podría ser suficiente para situaciones simples, hay ocasiones en las que podrías querer implementar soluciones más avanzadas para realizar búsquedas más precisas y dinámicas. Aquí es donde entran en juego las consultas preparadas.

...
$stmt = $conexion->prepare("SELECT * FROM tabla WHERE columna LIKE ?");
$busqueda = $_GET['busqueda'] . '%';
$stmt->bind_param('s', $busqueda);
$stmt->execute();
$result = $stmt->get_result();
...

Las consultas preparadas no solo brindan mayor seguridad al evitar la inyección SQL, sino que también son más eficientes cuando se requiere ejecutar una consulta múltiples veces con distintos valores de parámetros.

Es importante que sigas practicando y aprendiendo más acerca de este lenguaje. PHP te ofrece un número casi ilimitado de posibilidades para interactuar con las bases de datos, y cada nuevo conocimiento que adquieras te permitirá desarrollar soluciones más sólidas, seguras y eficientes.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. 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. Más información
Privacidad