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
1 Asked on November 24, 2021 by missael-armenta
1 Asked on November 24, 2021 by salvation
3 Asked on November 24, 2021
0 Asked on November 22, 2021 by maurikius
2 Asked on November 22, 2021 by user65171
2 Asked on November 22, 2021 by plazamarco
1 Asked on November 22, 2021
1 Asked on November 22, 2021 by juan-manuel-reina-muoz
1 Asked on November 20, 2021 by jacd
1 Asked on November 20, 2021 by daniel-ruiz
2 Asked on November 20, 2021
1 Asked on November 20, 2021 by kn4
1 Asked on November 20, 2021 by agustin-medrano
1 Asked on November 20, 2021
2 Asked on November 20, 2021 by camilo-davidortega
Get help from others!
Recent Answers
Recent Questions
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP