Soucis avec l'analyse d'une variable

Eléphant du PHP | 153 Messages

17 mars 2009, 16:12

Boujour à tous,

Je souhaite vérifier le niveau d'un utilisateur avant d'insérer des données dans l'une de ses tables.

Mon champ "niveau" est un type tinyint(4), null non, defaut 0
et ce champ peut contenir soit 0, 1, 2, 3, 4, 5 ou 6 (suivant la remise affecté à l'utilisateur)
0 = aucun niveau
1 = 100%
2 = 50%
3 = 40%
4 = 30%
5 = 20%
6 = 10%

Je ne souhaite pas qu'un INSERT soit effectué si "niveau" = 1, je fais donc :
if ($num_user != "1")
{
mais ça ne fonctionne pas.
J'ai fait des tests avec simple quote, double quotes et sans quote, mais sans succès.

Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 16:17

Normalement, étant donné qu'il s'agit d'un entier, il ne faut pas mettre de quote.

Logiquement
if ($num_user != 1)
{
devrait fonctionner.

Sinon pour être sûr de n'avoir que des entiers, utilise intval().
if (intval($num_user) != 1)
{

Eléphant du PHP | 153 Messages

17 mars 2009, 16:41

oui, c'est ce que je me suis dit, mais ça ne fonctionne pas non plus.
J'ai pensé que cela pourrait être pris pour un "true" ?

Par contre, j'effectue un test avec
$num_user = 0
ça a peut-être son importance ?

Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mars 2009, 16:55

Ben si $num_user est égal à 0, il est forcément différent de 1...

es-tu sur de sa valeur ? l'as tu affiché avec un echo ?
es-tu sur qu'il rentre dans ton if ?

Quand tu dis que ça ne fonctionne pas, qu'est ce qui ne fonctionne pas ? qu'est ce qu'il fait ? qu'est ce qu'il devrait faire ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 153 Messages

17 mars 2009, 17:20

Ben si $num_user est égal à 0, il est forcément différent de 1...

es-tu sur de sa valeur ? l'as tu affiché avec un echo ?
es-tu sur qu'il rentre dans ton if ?

Quand tu dis que ça ne fonctionne pas, qu'est ce qui ne fonctionne pas ? qu'est ce qu'il fait ? qu'est ce qu'il devrait faire ?
Effectivement, je dois avoir un autre soucis, car si $num_user est égal à 0 (donc différent de 1), il devrait y avoir insertion dans la table. Ce qui n'est pas le cas.

Je vous tiens informé.
Merci à vous.

EDIT :
J'avais une erreur autre que le soucis avec $num_user
On pense toujours avoir fait le tour des problèmes éventuels, mais en fait ... :oops:

Merci encore pour votre aide et votre patiente :wink: