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 27, 2021 by deathgran2015
0 Asked on November 27, 2021 by jpcruz
1 Asked on November 27, 2021 by pike
0 Asked on November 27, 2021 by elloko36
1 Asked on November 27, 2021 by user183006
1 Asked on November 27, 2021 by elton
0 Asked on November 27, 2021 by carlos-enrique-gil-gil
1 Asked on November 24, 2021 by francisco-javier-lopez-perez
1 Asked on November 24, 2021 by javier-cruz
1 Asked on November 24, 2021 by marcos-galaviz
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir