Page 1 sur 1

Détecter si une valeur n'est pas dans une liste (table) ?

Posté : 20 juil. 2011, 20:12
par macchu
Bonjour à tous,

Je suis débutant en PHP et pas très doué semble-t-il...
Dans une liste (table), il y a un certain nombre de chiffres (15, 1, 84, 7, 28, 12, 83, 28, 33, 35, 37, 38, 38, 39, 39, 41, 42...)
J'aimerais savoir si le chiffre d'une variable ($variable=99 par exemple) ne se trouve pas dans la liste

J'ai réussi à créer une table avec une requête mysql mais maintenant je n'arrive pas à détecter si ce fameux chiffre se trouve dans ma table... :|
Voici ma requête pour la création de la table :
$sql = "SELECT numDep FROM dep_magasins";
$res=mysql_query($sql);

while ($row = mysql_fetch_array($res, MYSQL_NUM)) {
   printf("%s, ", $row[0]);
}
mysql_free_result($res);
$t=resultats($res);
echo $t;
J'ai lu par-ci par-là que GLOB pouvait m'aider mais je ne vois pas du tout comment l'utiliser...
A moins que vous n’ayez une autre idée ?
merci :)

Re: Détecter si une valeur n'est pas dans une liste (table) ?

Posté : 20 juil. 2011, 22:20
par Ryle
Nope, glob ne t'aidera pas ici :)

Si tu n'as qu'une seule valeur à tester, le plus simple c'est d'ajouter une condition à ta requête sql pour qu'elle fasse le test directement :
"SELECT numDep FROM dep_magasins WHERE numDep = 99"
// ou encore
"SELECT COUNT(*) as nb FROM dep_magasins WHERE numDep = 99"
La première requête ne te retournera de résultat que s'il existe au moins un enregistrement dont la valeur est 99, la seconde va les compter et te retournera le nombre d'enregistrement trouvés (et si aucun, c'est que ta valeur n'existe pas :))

Si tu as plusieurs valeurs à tester, le mieux c'est de faire un tableau php à partir de tous tes numéros, puis de vérifier si la valeur que tu cherches est présente dans ce tableau avec la fonction inArray de php :)

Re: Détecter si une valeur n'est pas dans une liste (table) ?

Posté : 21 juil. 2011, 00:10
par macchu
Extra merci Ryle !

j'ai utilisé la première requête et ensuite je teste si la valeur est vide ou non.
merci :)