If / elseif
killermano66
Messages postés
249
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonsoir,
J'ai un petit soucis avec ce script :
<?php
include('../connection.php');
$requete_selection = mysql_query('SELECT * FROM sortie WHERE id="1"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$donnees = mysql_fetch_array($requete_selection);
if ($donnees['lieux1']==USA){
echo '<img src="../../pictures/minius.png">';
}
elseif ($donnees['lieux1']==EU) {
echo '<img src="../../pictures/minifr.png">';
}
elseif ($donnees['lieux1']==JAP) {
echo '<img src="../../pictures/minijp.png">';
}
echo $donnees['jeux1'] . ' - ' . $donnees['date1'] . '<br />';
mysql_close()
?>
Tout fonctionne, sauf mon bloc if/elseif qui doit afficher normalement une image selon le contenu d'un champ d'une table de ma BDD. Mais malgré que celle-ci soit bien renseignée, rien ne s'affiche et je ne comprend absolument pas le problème. A noter que le chemin des images est bien le bon, j'ai vérifié au cas ou, on ne sait jamais.Je m'en remet donc a vos lumières en espérant trouver une réponse. Je vous remercies ;)
J'ai un petit soucis avec ce script :
<?php
include('../connection.php');
$requete_selection = mysql_query('SELECT * FROM sortie WHERE id="1"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$donnees = mysql_fetch_array($requete_selection);
if ($donnees['lieux1']==USA){
echo '<img src="../../pictures/minius.png">';
}
elseif ($donnees['lieux1']==EU) {
echo '<img src="../../pictures/minifr.png">';
}
elseif ($donnees['lieux1']==JAP) {
echo '<img src="../../pictures/minijp.png">';
}
echo $donnees['jeux1'] . ' - ' . $donnees['date1'] . '<br />';
mysql_close()
?>
Tout fonctionne, sauf mon bloc if/elseif qui doit afficher normalement une image selon le contenu d'un champ d'une table de ma BDD. Mais malgré que celle-ci soit bien renseignée, rien ne s'affiche et je ne comprend absolument pas le problème. A noter que le chemin des images est bien le bon, j'ai vérifié au cas ou, on ne sait jamais.Je m'en remet donc a vos lumières en espérant trouver une réponse. Je vous remercies ;)
13 réponses
Bonsoir,
petite précision:
comme la requette 'SELECT * FROM sortie WHERE id="1"'
ne sortira qu'un seul enregistrement il est inutile de faire une boucle while
seul un
on fait while quand il y a plusieurs enregistrement extraits
par contre si le test if ($donnees['lieux1']=="USA") ne fonctionne pas c'est que $donnees['lieux1'] ne contient pas exactement USA
n'y a -t-il pas un espace qui traine et qui est difficile à voir ?
faire echo "donnee lue=".$donnees['lieux1']."fin de lecture";
petite précision:
comme la requette 'SELECT * FROM sortie WHERE id="1"'
ne sortira qu'un seul enregistrement il est inutile de faire une boucle while
seul un
$donnees = mysql_fetch_array($requete_selection);suffit
on fait while quand il y a plusieurs enregistrement extraits
par contre si le test if ($donnees['lieux1']=="USA") ne fonctionne pas c'est que $donnees['lieux1'] ne contient pas exactement USA
n'y a -t-il pas un espace qui traine et qui est difficile à voir ?
faire echo "donnee lue=".$donnees['lieux1']."fin de lecture";
Bah non, ça m'écrit le contenue de la BDD donc JAP ou EU ou USA mais ça ne m'affichera pas l'image. C'est la structure if /elseif qui déconne à mon avis. Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionwhile($donnees = mysql_fetch_array($requete_selection)){// fais un balayage de tableau avec while^^ sans ça, il n'y a rien si je ne me trompe
//vu que tu n'utilise que la valeur d'une seule variable, utilise un switch
switch($donnees['lieux1']){
case 'USA':
echo "<img src='../../pictures/minius.png'/>"; //tu remarqueras du xHTML
break;
case 'EU':
echo "<img src='../../pictures/minifr.png'/>"; //et une utilisation des guillemets plus cohérente.
break;
case 'JAP':
echo "<img src='../../pictures/minijp.png'/>";
break;
}//fin du switch
echo $donnees['jeux1'] . ' - ' . $donnees['date1'] . '<br />';
}//on ferme le tableau
moins de caractères, moins de ligne, code optimisé et propre^^
alors?
J'ai déjâ essayé ça aussi et ça ne fonctionne pas. Merci.
Pour ce qui est de ta solution smokingbird pareil, ça ne m'affiche aucunement les images. Et il n'y a pas besoin de boucle while pour traiter les donnée d'une BDD juste de la fonction mysql_fetch_array() non ?
Pour ce qui est de ta solution smokingbird pareil, ça ne m'affiche aucunement les images. Et il n'y a pas besoin de boucle while pour traiter les donnée d'une BDD juste de la fonction mysql_fetch_array() non ?
ah ça par contre, même ça ne résout pas le problème, ça n'est pas à "essayer", mais c'est à faire.
Si tu ne le fais pas, ton code ne marcheras pas à coup sûr.
Essaye ta page sur IE, est-ce que tu as un petit carré avec une croix rouge ?
Si c'est le cas, c'est juste que le chemin de tes images n'est pas bon.
Si tu ne le fais pas, ton code ne marcheras pas à coup sûr.
Essaye ta page sur IE, est-ce que tu as un petit carré avec une croix rouge ?
Si c'est le cas, c'est juste que le chemin de tes images n'est pas bon.
Oki pour les quotes alors.
Déjâ testé sous rien ne me dit que le chemin d'accés de mes images n'est pas corrects. Puis j'ai tout de même testé en dur en entrant direct le lien des image et ça s'affiche nikel. Merci encore.
Déjâ testé sous rien ne me dit que le chemin d'accés de mes images n'est pas corrects. Puis j'ai tout de même testé en dur en entrant direct le lien des image et ça s'affiche nikel. Merci encore.
Bonsoir,
Pas de message d'erreur ? A mon avis c'est les conditions qui ne sont pas vérifiées. Essai ce code et dis moi ce qui s'affiche:
Cordialement
Revan
Pas de message d'erreur ? A mon avis c'est les conditions qui ne sont pas vérifiées. Essai ce code et dis moi ce qui s'affiche:
<?php
include('../connection.php');
$requete_selection = mysql_query('SELECT * FROM sortie WHERE id="1"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection))
{
if ($donnees['lieux1']=='USA') echo '<img src="../../pictures/minius.png">';
elseif ($donnees['lieux1']=='EU') echo '<img src="../../pictures/minifr.png">';
elseif ($donnees['lieux1']=='JAP') echo '<img src="../../pictures/minijp.png">';
else echo 'Le probleme vient de tes conditions ;-)';
echo $donnees['jeux1'] . ' - ' . $donnees['date1'] . '<br />';
}
mysql_close()
?>
Cordialement
Revan
Alors ça m'affiche le contenue du else :
Le probleme vient de tes conditions ;-).
Pourrais tu m'expliquer mon erreur car je ne la comprend absolument pas. Ce petit bout de code me paraissait trés simple lorsque je l'ai écrit et je me rend compte que j'ai fait un peu n'importe quoi.
Merci à toi ;)
Le probleme vient de tes conditions ;-).
Pourrais tu m'expliquer mon erreur car je ne la comprend absolument pas. Ce petit bout de code me paraissait trés simple lorsque je l'ai écrit et je me rend compte que j'ai fait un peu n'importe quoi.
Merci à toi ;)
Je dirai que le problème vient du contenu de ta table. Le contenu ne remplit pas les conditions, c'est-à-dire qu'aucun lieux1 ayant pour id 1 n'est égal soit à USA, soit EU ou soit JAP.
Peux-tu nous mettre le résultat de ce code:
Peux-tu nous mettre le résultat de ce code:
<?php
include('../connection.php');
$requete_selection = mysql_query('SELECT * FROM sortie WHERE id="1"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($donnees = mysql_fetch_array($requete_selection))
{
echo $donnees['lieux1'].'<br/>';
}
mysql_close()
?>
bonsoir , si tu fait comme ça
je pense que le while ne s'impose pas car tu met une clause where id=1, est un id en autoincrement?
j'ai juste modifié un peu les quotes et les doubles quotes
je pense que le while ne s'impose pas car tu met une clause where id=1, est un id en autoincrement?
<?php
include('../connection.php');
$requete_selection = mysql_query('SELECT lieux1 , date1 FROM sortie WHERE id="1"') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
list($donnees , $date)= mysql_fetch_array($requete_selection);
switch($donnees)
{
case "USA":
echo '<img src="../../pictures/minius.png">';
break;
case "EU":
echo '<img src="../../pictures/minifr.png">';
case "JAP":
echo '<img src="../../pictures/minijp.png">';
break;
}
echo $donnees . ' - ' . $date . '<br />';
mysql_close()
?>
j'ai juste modifié un peu les quotes et les doubles quotes
Alors,
echo "donnee lue=".$donnees['lieux1']."fin de lecture"; me renvoi
donnee lue= USA fin de lecture
donc j'ai bien l'impression qu'il y a un espace mais je ne vois pas d'ou il peut bien sortir. J'utilise pour entrer les données dans la BDD une liste déroulante :
<select name="lieux1">
<option value="<?php echo $donnees['lieux1']; ?>"><?php echo $donnees['lieux1']; ?></option>
<option value="USA">USA</option>
<option value="EU">EU</option>
<option value="JAP">JAP</option>
</select>
Et puis de toute façon si je rajoute cette espace comme ceci :
f ($donnees['lieux1']==" USA"){
echo '<img src="../../pictures/minius.png">';
}
Ca ne me donne rien.
Merci encore.
echo "donnee lue=".$donnees['lieux1']."fin de lecture"; me renvoi
donnee lue= USA fin de lecture
donc j'ai bien l'impression qu'il y a un espace mais je ne vois pas d'ou il peut bien sortir. J'utilise pour entrer les données dans la BDD une liste déroulante :
<select name="lieux1">
<option value="<?php echo $donnees['lieux1']; ?>"><?php echo $donnees['lieux1']; ?></option>
<option value="USA">USA</option>
<option value="EU">EU</option>
<option value="JAP">JAP</option>
</select>
Et puis de toute façon si je rajoute cette espace comme ceci :
f ($donnees['lieux1']==" USA"){
echo '<img src="../../pictures/minius.png">';
}
Ca ne me donne rien.
Merci encore.