Page 1 sur 1

Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 20:41
par Raph5959
Bonjour à tous :)


Voilà j'ai un problème qui est peut être extrêmement simple mais je n'ai pas trouvé de solution...

En fait j'ai une variable Array avec des chiffres.

J'ai une requête SQL à exécuter avec un WHERE qui exclus les chiffres de ma variable Array ci-dessus.

En gros j'aimerai faire une requête du genre
$variable_array = ( 1 => 5614 , 2 => 6985 );

$sql = ('SELECT * FROM table WHERE id NOT IN ' . $variable_array . '');
le résultat voulu serai en réalité au final dans SQL
SELECT * FROM table WHERE id NOT IN ( 5614, 6985 )


J'indique NOT IN juste car il me semblais que c'était cela qu'il faillais utiliser, mais je prend n'importe quelle autre méthode lol.

Si quelqu'un pouvais m'aider je lui en serai reconnaissant!

Merci :)

Re: Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 20:45
par fab
Oui mais PHP fait pas la conversion tout seul en chaine de caractère formaté comme MySQL le veut donc tu dois faire une boucle sur ton array et le mettre en forme :p

Re: Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 20:47
par stopher
Ou simplement , sans boucle :
$sql = ('SELECT * FROM table WHERE id NOT IN  (' . implode(',',$variable_array) . ' )');
Edit , il faut retirer les clef avant ... avec array_values()

ce qui donnerai :
$sql = ('SELECT * FROM table WHERE id NOT IN  (' . implode(',',array_values($variable_array)) . ' )');
Ou tu ne met simplement pas de clef au départ ...

Re: Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 20:54
par fab
Pas bête :)

Re: Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 21:07
par stopher
... mais là pour le faire deviner .. j'ai pas trouvé comment :-k

:D

Re: Variable PHP Array dans un WHERE NOT IN SQL?

Posté : 16 oct. 2009, 22:16
par Raph5959
Je vous remercie énormément pour vos réponses!! Et je remercie en particulier stopher qui m'as apporté la solution qui m'était le plus approprié :)

Tout fonctionne parfaitement avec la solution de stopher, donc merci :)