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);
}
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP