Requête avec attribut IN : SQL

Résolu/Fermé
devman01 Messages postés 31 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 8 novembre 2018 - Modifié par devman01 le 30/03/2016 à 10:47
devman01 Messages postés 31 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 8 novembre 2018 - 31 mars 2016 à 18:54
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" :

$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

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 711
30 mars 2016 à 12:13
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));

2
devman01 Messages postés 31 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 8 novembre 2018 1
31 mars 2016 à 18:54
Merci jordane45, ça marche très bien
0
Regis59 Messages postés 21143 Date d'inscription mardi 27 juin 2006 Statut Contributeur sécurité Dernière intervention 22 juin 2016 1 321
Modifié par Regis59 le 30/03/2016 à 10:54
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"
0
devman01 Messages postés 31 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 8 novembre 2018 1
31 mars 2016 à 18:51
merci Regis59 mais dommage ça marche pas ..
0