¿Cómo vincular una array a una condición IN() en PHP?

Dada una base de datos que contiene algunos datos y la tarea es vincular una array de PHP mediante el operador MySQL IN(). Aquí veremos un programa que hace lo necesario tomando una array de PHP dentro de la consulta e interpretándola.

Operador SQL IN(): El operador SQL IN() le permite pasar múltiples argumentos en la cláusula where. A menudo se usa como la abreviatura de varias declaraciones OR.

Sintaxis:

SELECT <column_name(s)>
FROM <table_name>
WHERE <column_name> IN( value1, value2, ...);

Función implode() de PHP : Usaremos la función implode() predefinida de PHP para manejar la array. La función implode() une los elementos de la array con una string. Requiere dos parámetros para llevar a cabo lo mismo. Primero está la string que se usará para unir los elementos de la array que también se puede denominar string de pegamento. Ya que se utilizará para pegar los elementos entre sí. El segundo es obviamente la array en la que se requiere realizar la operación.

Sintaxis:

string implode(separator, array)

Enlace de array: según nuestra necesidad, simplemente necesitamos vincular la array de PHP a la cláusula IN() y para obtener esta funcionalidad, primero debemos convertir la array dada a la forma aceptable por la cláusula IN(), que es un trabajo llevado a cabo por la función PHP implode(). Además, tenga en cuenta que al pasar nuestro arreglo a la función, solo estamos convirtiendo el arreglo en la forma aceptable por IN() pero sigue siendo el mismo arreglo.

El siguiente programa te ayudará a comprender el concepto de manera práctica y más detallada:

Base de datos usada: aquí, usaremos una base de datos ( nombre de la base de datos: Geeks ) para vincular una array a una condición IN() en PHP.

Nombre de la tabla: GFG El nombre de la tabla GFG contiene la siguiente información.

IDENTIFICACIÓN NOMBRE
1 MEGAN
2 Gina
3 DARVY
4 DEBBY
5 MICHEL
6 RAQUEL
7 Eva
8 SAM
9 ZACK
10 TIEMPO

Programa 1: El siguiente código toma la array PHP de ID de la tabla GFG y la pasa al operador IN() para recuperar los nombres correspondientes a las ID dadas.

<?php  
  
// Connecting to the server
$server = 'localhost';
$username = 'root';
$password = '';
$dbname = 'Geeks';
   
// Declare and initialize an
// array that need to be
// passed to IN() operator
$arr = array(1, 2, 3, 4, 5);
   
// Joining array elements using
// implode() function
$ids = implode(', ', $arr);
   
$conn = new mysqli($server, 
    $username, $password, $dbname);
   
// SQL query to pass the array 
$sql = ('SELECT NAME FROM GFG 
        WHERE ID IN ('.$ids.')' );
   
$result = $conn->query($sql);
   
if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row['NAME'] . "<br>"; }
}  else {
    echo "0 results";
}
   
$conn->close();
   
?>

Producción:

MEGAN
GINA
DARVY
DEBBY
MICHEL

Programa 2: El siguiente código usa la misma tabla de información pero recupera la ID correspondiente a los nombres dados en la array.

<?php
   
// Connecting to server
$server = 'localhost';
$username = 'root';
$password = '';
$dbname = 'Geeks';
   
// Declare and initialize an
// array that need to be
// passed to IN() operator
$arr = array("MEGAN", "TIM");
   
// Joining array elements using
// implode() function
$names = implode('\', \'', $arr);
   
// Since array elements to be
// searched, here are string
// making it look like a string
// so that sql can easily
// interpret it
$fin = "'" . $names . "'";
   
$conn = new mysqli($server, 
    $username, $password, $dbname);
   
// SQL query to pass the array 
$sql=('SELECT ID FROM GFG
        WHERE NAME IN ('.$fin.')' );
   
$result = $conn->query($sql);
   
if($result->num_rows > 0)  {
    while($row = $result->fetch_assoc()){
        echo $row['ID'] . "<br>"; 
    }
} else {
    echo "0 results";
}
   
$conn->close();
   
?>

Producción:

1
10

Publicación traducida automáticamente

Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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