Comparaison de champs SQL avec un tableau PHP

Salut à tous,

Directement un bout de code en exemple :


$tab = array('0', '12', '52', '24');

mysql_query('SELECT champs FROM table WHERE champ != 0,12,52,24');

Je cherche à faire un truc dans le genre, c’est à dire que j’ai un tableau PHP avec des valeurs numériques et que j’aimerai comparer sur un champ de requete SQL.

Je peux trés bien faire une boucle pour chaque valeur du tableau et concatener les requetes dans une variable… mais je trouve que ça ferait assez lourd…

J’ai cherché du coté de mySql pour voir s’il n’y aurait pas une fonction/méthode qui pourrait le faire… mais sans succés…

Un équivalent en PHP :


in_array(valeur, tableau)

La fonction cherche si la valeur est présente dans le tableau… tout seul, sans avoir à faire de boucle… mais en SQL… je vois pas du tout :confused:

Si vous auriez une piste… ?

Merci

EDIT: Vu qu’on peut pas supprimer son post, j’ai trouvé mon bonheur avec NOT IN()
Edité le 11/06/2007 à 23:58


$tab = array(0, 12, 52, 24);
mysql_query('SELECT champs FROM table WHERE champ NOT IN ' . implode(', ', $tab));

Edité le 11/06/2007 à 23:58

(erreur dans ton code Mandarounet mais je pense que Quaz ne s’est pas fait avoir, sur ce dodo)


$tab = array(0, 12, 52, 24);
//La requête te retroune toutes les valeurs sauf ceux contenues dans la tableau $tab
mysql_query('SELECT champs FROM table WHERE champ NOT IN (' . implode(', ', $tab) .' );');

//La requête te retroune toutes les valeurs contenues dans la tableau $tab si elles sont présentes dans la base
mysql_query('SELECT champs FROM table WHERE champ IN (' . implode(', ', $tab) . ');');

Edité le 12/06/2007 à 08:28

:confused:

Ouep j’ai zappé les parenthèses.