If et else en php

Bonjour,
J'ai un petit probleme en creant mon site internet

Si je fait :
echo $donnees['texte'];
je vois que la valeur de ce champ est toto pourtant si je fait:

if ($donnees['texte'] =="toto"){

echo "TRUE";
}

else {

echo "FALSE";
}

Pourtant le serveur me renvoi toujours false pourquoi ?

Avec un seul signe egal il me renvoi toujours true.
Configuration: Windows XP
Firefox 3.0.4

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Probablement parce que $donnees['texte'] ne vaut pas 'toto', mais peut-être 'Toto', 'TOTO' ou encore 'toto '.
    Montre-nous le code où est définit $donnees.
    1. Salut Yoan, j'ai bien regarder pourtant le texte est le meme j'aurais pensé a une erreur dans mon code un peu plus haut:

      $reponse = mysql_query("SELECT texte FROM orders WHERE orders_id='50'"); // Requête SQL
      while ($donnees = mysql_fetch_array($reponse) )

      echo $donnees['texte']; me renvoi bien le texte...

      quel casse tete!!!
      1. Modérateur
        Il te renvoie le texte, oui, as-tu vérifié qu'il n'y avait pas de subtilité entre majuscules/minuscules ou encore s'il n'y a pas un espace avant ou après 'toto' dans la base ?
        1. Non le texte est exactement le meme dans la base je pensai que ca venait plutot de mon code...
          1. Modérateur
            euh, non.
            Juste avant le test conditionnel, essaie de placer ceci : $donnees['texte']='toto';
            1. La ca marche ...

              C'est a rien n'y comprendre...
              dans ma chaine il y'a un accent " é " es'ce que le probleme pourrait venir de la ?
            2. @raquierBonjour,

              dans ma chaine il y'a un accent " é " es'ce que le probleme pourrait venir de la ?

              il n'y a pas de é dans toto ce qui voudrait dire que tu veux tester si tu as bien tot dans une chaine qui contient d'autres mots ?

              alors avec =="toto" ça ne peut pas marcher il faut passer en plus par une autre fonction php de traitement de chaine