Page 1 sur 1

Traitement des condition et bdd

Posté : 11 juin 2009, 23:16
par gege210
Bonjour.
Dans une bdd Mysql, j'ai une colonne qui peut avoir trois valeur :
1
2
3

Je fait une requête Mysql.
Pas de problème.
Je souhaite mettre une condition if pouur afficher à la place de 1 un texte "Il fait beau" (exemple bête).
Mais le probléme c'est que cela m'affiche toujours le même text...

Code : Tout sélectionner

// j'appelle la variable $resltat $serveur = "localhost"; $base_de_donnees = "mabdd"; mysql_connect($serveur, "root", "***") or die("Impossible de se connecter sur le serveur ".$serveur." : " . mysql_error()); mysql_select_db($base_de_donnees) or die("Impossible de se sélectionner la base de données ". $base_de_donnees." : " . mysql_error()); $afficher = "SELECT * FROM table WHERE Resultat='$resultat'"; $result = mysql_query($afficher) or die("Erreur lors de la lecture de la requête ".$afficher." : " . mysql_error()); while ($donnees = mysql_fetch_array($result) ) { if ($donnees['Resultat']="1"); { $aff="Il fait beau"; } if ($donnees['Resultat']="2"); { $aff="Il pleut"; } if ($donnees['Resultat']="3"); { $aff="Soleil !"; } } echo $aff; } mysql_close();
Mais ceci ne marche pas.

Merci de votre aide

@bientôt

Posté : 11 juin 2009, 23:30
par albat
Il y a déjà une erreur dans l'écriture de ta requête.
Je l'ai écrite de 3 façons différentes pour te montrer.

J'en ai également profité pour remplacer ta série de if par un switch, plus optimisé.

Enfin, et c'est sans doute ce qui bugue, il faut intégrer le echo dans la boucle.
// j'appelle la variable $resultat
$serveur = "localhost";
$base_de_donnees = "mabdd";
mysql_connect($serveur, "root", "***") or die("Impossible de se connecter sur le serveur ".$serveur." : " . mysql_error());
mysql_select_db($base_de_donnees) or die("Impossible de se sélectionner la base de données
".$base_de_donnees." : " . mysql_error());

$afficher = "SELECT * FROM table WHERE Resultat='$resultat'";     // MAL
$afficher = "SELECT * FROM table WHERE Resultat=".$resultat;      // BIEN si Resultat est un numérique
$afficher = "SELECT * FROM table WHERE Resultat='".$resultat."'"; // BIEN si Resultat n'est pas un numérique

$result = mysql_query($afficher) or die("Erreur lors de la lecture de la requête ".$afficher." : " . mysql_error());

while ($donnees = mysql_fetch_array($result) )
      { switch ($donnees['Resultat'])
               { case 1 : $aff="Il fait beau"; break;
                 case 2 : $aff="Il pleut"; break;
                 case 3 : $aff="Soleil !"; break;
               }
        echo $aff;
      }