TransWikia.com

Puedo cosultar en mysql por id si tengo un array de datos?

Stack Overflow en español Asked by Alejandra Cervera on January 5, 2022

Necesito hacer una consulta dado un array de números id[1, 4, 6], esos números serían los id de trabajadores que se ingresan por un multiselect, por lo que pueden variar, cómo podría hacer una consulta si por ejemplo requiero los datos [Nombre][Apellidos][Sueldo], estaba pensando en usar php, pero aún no se me ocurre algo claro.

Este es uno que hice cuando se selecciona un sólo id, como el multiselect me da un array anque sea un sólo dato, lo comparo así…

    $idPro=$_POST['idPro'];
    $idEmb = $_POST['idEmb'];
    $idEmb2 = $_POST['idEmb2'];
   

  if (count($idPro)==1){
        $query=mainModel::ejecutar_consulta_simple("SELECT fruta.id_embarque as embarque, fruta.id_productores as id, SUM(fruta.peso_kg) as kg from fruta
        where fruta.id_embarque =$idEmb AND FRUTA.id_productores=$idPro[0]
        GROUP by fruta.id_productores");
        return $query->fetchAll(PDO::FETCH_ASSOC);
    }

One Answer

Estás analizando si solo se recibió una ID, ahí deja la consulta con id_productores = ID_RECIBIDA, si es más de una, usa implode() para generar una cadena de IDs separadas por coma [ID1, ID2, IDX] y el operador IN en vez de =

$idPro = $_POST['idPro'];
$idEmb = $_POST['idEmb'];
$idEmb2 = $_POST['idEmb2'];


if(count($idPro)==0) {
  // La consulta fallará si no se proporciona ID
  die('Selecciona al menos 1 ID');
} elseif(count($idPro)==1) {
  // Operador = y solo una ID
  $ids = "= {$idPro[0]}";
} else {
  // Operador IN y lista de IDs separadas por coma
  $ids = 'IN (' . implode(', ', $idPro) . ')';
}
$query=mainModel::ejecutar_consulta_simple("SELECT fruta.id_embarque as embarque, fruta.id_productores as id, SUM(fruta.peso_kg) as kg from fruta
    where fruta.id_embarque =$idEmb AND FRUTA.id_productores $ids
    GROUP by fruta.id_productores");
    return $query->fetchAll(PDO::FETCH_ASSOC);

Answered by Triby on January 5, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP