Requête avec attribut IN : SQL
Résolu
devman01
Messages postés
36
Statut
Membre
-
devman01 Messages postés 36 Statut Membre -
devman01 Messages postés 36 Statut Membre -
bonjours, je veux récupérer une liste d’identifiants "id" de la base de données à condition que le "matricule" soit un élément du tableau "$Tab" :
Mais ça n'affiche rien !
je sais qu'il y a une solution en PHP, comme récupérer tous les "id" et "matricule" , les mettre dans des variables et faire un test :
Mais la enregistrements sont nombreux, ça peut être lent un peu, c'est pour cela je veux filtrer la sélection grâce à IN si c'est possible.
Est-ce que vous me proposer une idée pour faire ça; et merci d'avance.
$Tab=array(5,6,7,13,15); $rq=mysqli_query($connect,"SELECT id FROM user WHERE matricule IN $Tab") or die (mysqli_error($connect)); .....
Mais ça n'affiche rien !
je sais qu'il y a une solution en PHP, comme récupérer tous les "id" et "matricule" , les mettre dans des variables et faire un test :
if(in_array($matricule,$Tab))
Mais la enregistrements sont nombreux, ça peut être lent un peu, c'est pour cela je veux filtrer la sélection grâce à IN si c'est possible.
Est-ce que vous me proposer une idée pour faire ça; et merci d'avance.
2 réponses
-
Bonjour,
$Tab=array(5,6,7,13,15); $strTab = "'".join("','",$Tab)."'"; // convertit ton array sous la forme '5','6','7','13','15' $requete = "SELECT id FROM user WHERE matricule IN ($strTab)"; $rq=mysqli_query($connect,$requete) or die (mysqli_error($connect));
-
Salut,
Je ne sais pas si tu peux le faire avec le tableau, je n'ai pas testé mais quoi qu'il en soit, dans ta requête, tu dois concaténer ta requête et ta variable !
Écris comme cela: "SELECT id FROM user WHERE matricule IN $Tab", tu n'utilises pas ta variable la...
Voila, essaie avec cette base et remet nous la requête corrigée ;-) (avec un message d'erreur s'il y a)
"SELECT table WHERE Ma_Variable IN (".tontableau." )"
"Impossible is nothing"