Test d'égalité non satisfait avec if

Test d'égalité non satisfait avec if - PHP - Programmation

Marsh Posté le 24-10-2008 à 09:22:38    

Bonjour.
 
Je fais cette requête.
 

Code :
  1. SELECT nom,adresse1,adresse2,cp,localite FROM util WHERE id = '$ID'


 
On va parler uniquement du cas qui m'embette.
 
Imaginons que le champs adresse2 ne soit pas renseigné pour un de mes enregistrements.
 
Voici mon if

Code :
  1. if (($val['nom'] == '$NOM') && ($val['adresse1'] == '$ADRESSE1_RECUP') && ($val['adresse2'] == '$ADRESSE2_RECUP') ...)


 
En gros on devrait rentrer dans ma boucle car le nom et l'adresse1 correspondent et $val['adresse2'] dans mon cas vaut null car le champs n'est pas renseigné dans ma BDD et $ADRESSE2_RECUP = ""
 
A cause de cela on ne rentre pas dans la boucle.
Comment remédier à cela?
 
Je précise que $NOM,$ADRESSE1_RECUP,$ADRESSE2_RECUP sont des valeurs récupérés dans un fichier txt.


Message édité par masseur le 24-10-2008 à 09:23:05
Reply

Marsh Posté le 24-10-2008 à 09:22:38   

Reply

Marsh Posté le 24-10-2008 à 09:48:07    

Les simples quotes détermine une chaine de caractère dans laquelle les variables ne sont pas interprétées, tu es sur que veux comparer la chaine '$NOM' et pas plutot la variable $NOM ?

Reply

Marsh Posté le 24-10-2008 à 09:54:19    

yellu a écrit :

Les simples quotes détermine une chaine de caractère dans laquelle les variables ne sont pas interprétées, tu es sur que veux comparer la chaine '$NOM' et pas plutot la variable $NOM ?


 
Bien entendu c'est la variable qu'il faut interpréter.
Même en faisant cela

Code :
  1. $val['adresse2'] == $ADRESSE2_RECUP

ca considère mon égalité comme fausse!!!!
meme cela

Code :
  1. strcasecmp($val['adresse2'], $ADRESSE2) == 0


 
Ca fait un jour que je bloque dessus!!!


Message édité par masseur le 24-10-2008 à 09:56:31
Reply

Marsh Posté le 24-10-2008 à 10:37:52    

Je viens de faire un test très clair.
 

Code :
  1. if (   $val['adresse2'] == '$ADRESSE22'  )
  2. {
  3. echo '/DEBUT'.$val['adresse2'].'/FINDANSBOUCLE';
  4. echo '/DEBUT'.$ADRESSE22.'/FINDANSBOUCLE';
  5. }
  6. else {
  7. echo '/DEBUT'.$val['adresse2'].'/FINHORSBOUCLE';
  8. echo '/DEBUT'.$ADRESSE22.'/FINHORSBOUCLE';
  9. }


 
j'obtiens en retour à chaque fois /DEBUT/FINHORSBOUCLE/DEBUT/FINHORSBOUCLE
 
On voit donc bien que mes deux valeurs sont nulles et pourtant on entre pas dans la boucle!!

Reply

Marsh Posté le 24-10-2008 à 10:39:31    

La comparaison simple (==) de null et d'une chaine vide retoure true normalement en php...tu le remplis comment ton tableau? Tu as vérifié ce qu'il y a dedans?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-10-2008 à 10:40:54    

masseur a écrit :

Je viens de faire un test très clair.

 

[code]if (   $val['adresse2'] == '$ADRESSE22'  )
{

 

ça c'est stupide.
1) pas de simples quotes, sinon ce n'est pas ta variable, mais la chaine de caractères '$ADRESSE22' que tu compares.
2) $ADRESSE2, pas $ADRESSE22


Message édité par skeye le 24-10-2008 à 10:41:14

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-10-2008 à 10:53:09    

1) sur dev.net (un admin en plus) me dis bien de faire le test avec le simple quote!!!!!
 
2)C'est bien adresse22, mais la n'est pas le problème.
 
Un print_r de mon tableau donne cela
 

Code :
  1. Array ( [nom] => XXXXX [adresse1] => XXXXX [adresse2] => [cp] => XXXXX [localite] => XXXXX )


 
Mon tableau est donc bien rempli!!!!
 
Je rempli un enregistrement en mettant une valeur a adresse2
 
 
EDIT : test avec les double quote ca marche.
Merci skeye

Message cité 2 fois
Message édité par masseur le 24-10-2008 à 10:55:04
Reply

Marsh Posté le 24-10-2008 à 10:54:27    

masseur a écrit :

1) sur dev.net (un admin en plus) me dis bien de faire le test avec le simple quote!!!!!


bah c'est un abruti qui ne sait pas de quoi il parle.[:dawak]
essaye avec ça :

Code :
  1. if (   $val['adresse2'] == $ADRESSE22  )


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-10-2008 à 10:54:52    

masseur a écrit :


 
EDIT : test avec les double quote ca marche.


sans blague?[:moule_bite]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-10-2008 à 11:01:22    

J'avoue qu'en étant le nez dans mon PC, je ne savais plus ou étais la vérité!!!!!!
 
Merci encore!

Message cité 1 fois
Message édité par masseur le 24-10-2008 à 11:02:31
Reply

Marsh Posté le 24-10-2008 à 11:01:22   

Reply

Marsh Posté le 24-10-2008 à 11:55:39    

masseur a écrit :

J'avoue qu'en étant le nez dans mon PC, je ne savais plus ou étais la vérité!!!!!!
 
Merci encore!


 
c'est pas comme si on t'avait dit 3 fois qu'il fallait faire comme ça...:o
ça t'apprendra à aller demander conseil à des charlots :o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-10-2008 à 12:05:01    

skeye a écrit :


 
c'est pas comme si on t'avait dit 3 fois qu'il fallait faire comme ça...:o
ça t'apprendra à aller demander conseil à des charlots :o


félicitations pour avoir tenu la main de masseur :jap:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-10-2008 à 12:07:22    

Harkonnen a écrit :


félicitations pour avoir tenu la main de masseur :jap:


va foutre des claques à ton collègue qui répond à coté de ses pompes, au lieu de faire des jeux de mot stupides, toi :o


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed