Page 1 sur 2

function simple, mais petit problème

Posté : 22 oct. 2009, 13:00
par Nicost
Bonjour tous !
J'ai un petit problème avec ma function, qui ne prend pas en compte ma demande.
En effet je demande a ma function de mettre une image selon le nombre du score de l'utilisateur.

Problème est qu'il va mettre ma première image "echo'<img src="images/score/1.jpg">';" à un utilisateur qui a par exemple 17 en score.
J'ai fait un petit echo pour voir si je récupère bien le nombre exacte, il m'affiche bien 17.
Je comprend pas trop étand donner que je lui demande bien que si la variable score est superieur ou égale à 0, alors on affiche l'image 1.
Sinon si son score est superieur ou égale à 4, alors on affiche l'image 4, etc.
J'ai changer avec un simple = au lieu de >=, rien à faire snif :cry:
Par contre si je met elseif ($score >= 17), alors pas de problème, mais cela veux dire qu'il faut que je met tout les chiffres de 0 à 99999999999 ail !
Merci de votre aide !
<?php
function GradeScore()
{
if ($score >= 0)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score >= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score >= 10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >= 15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score >= 20)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}
?>

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:06
par Yosh
Passe la variable score à ta fonction

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:15
par Nicost
Merci de ta réponse Yosh.
Donc si je passe la variable à ma function cela donne ceci :
function GradeScore($score)
Ou alors j'ai tous faut ?
Apres test, toujours la même histoire.

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:44
par sylvaing26
Bonjour tous !
J'ai un petit problème avec ma function, qui ne prend pas en compte ma demande.
En effet je demande a ma function de mettre une image selon le nombre du score de l'utilisateur.

Problème est qu'il va mettre ma première image "echo'<img src="images/score/1.jpg">';" à un utilisateur qui a par exemple 17 en score.
J'ai fait un petit echo pour voir si je récupère bien le nombre exacte, il m'affiche bien 17.
Je comprend pas trop étand donner que je lui demande bien que si la variable score est superieur ou égale à 0, alors on affiche l'image 1.
Sinon si son score est superieur ou égale à 4, alors on affiche l'image 4, etc.
J'ai changer avec un simple = au lieu de >=, rien à faire snif :cry:
Par contre si je met elseif ($score >= 17), alors pas de problème, mais cela veux dire qu'il faut que je met tout les chiffres de 0 à 99999999999 ail !
Merci de votre aide !
<?php
function GradeScore()
{
if ($score >= 0)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score >= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score >= 10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >= 15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score >= 20)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}
?>
C'est tout simplement car ta logique n'est pas bonne
Ton premier if est toujours valable si le score est superieur ou égal à 0, donc à 17 il est toujours valable !

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:46
par fab
PHP va toujours s'arrêter de lire au premier IF car le score est toujours superieur ou égal à 0 :)
Essaye de revoir tes conditions pour qu'elles soient dans un ordre logique :)

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:48
par sylvaing26
essaie cela

<?php
function GradeScore()
{
if ($score == 1)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score > 1 && $score<= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score >4 && $score <=10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >10 && $score<=15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score >15)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}
?>

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:48
par Nicost
A oui en effet, merci sylvaing26 et Fab.
Donc il faut que je lui dise que si la variable score est >= à 0 et que si score est <= à 0 alors on affiche, et la je met mes elseif.
Se qui donne :
function GradeScore()
{
if ($score >= 0 && <= 0)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score >= 4)
etc...
Non ?

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:51
par sylvaing26
A oui en effet, merci sylvaing26 et Fab.
Donc il faut que je lui dise que si la variable score est >= à 0 et que si score est <= à 0 alors on affiche, et la je met mes elseif.
Se qui donne :
function GradeScore()
{
if ($score >= 0 && <= 0)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score >= 4)
etc...
Non ?
Non pas tellement
Quelles sont les intervalles exactes ou il doit y avoir les images ?
essaie ceci, je l'ai posté plus haut mais on a du poster en même temps
<?php
function GradeScore()
{
if ($score >= 0 && $score<=1)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score > 1 && $score<= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score >4 && $score <=10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >10 && $score<=15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score >15)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}
?>

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:52
par fab
sylvaing vient de te donner la solution, mais regarde les choses côtés logiques!!! Si tu veux afficher 1 tu fais comment ? tu vérifies que le score soit égal à 1 ... Ensuite tu veux afficher ton image 4 tu vérifies que le score soit inferieur ou égal à 4 etc...

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:54
par sylvaing26
sylvaing vient de te donner la solution, mais regarde les choses côtés logiques!!! Si tu veux afficher 1 tu fais comment ? tu vérifies que le score soit égal à 1 ... Ensuite tu veux afficher ton image 4 tu vérifies que le score soit inferieur ou égal à 4 etc...
J'ai édité mon post car yavé un pti oubli si le resultat etait egal à zero :wink:
<?php
function GradeScore()
{
if ($score >= 0 && $score<=1)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score > 1 && $score<= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score >4 && $score <=10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >10 && $score<=15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score >15)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}
?>

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 13:56
par fab
Ton score > 1 et ces équivalents dans les autres elseif ne servent a rien au passage :p

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 14:06
par sylvaing26
Ton score > 1 et ces équivalents dans les autres elseif ne servent a rien au passage :p
A y repenser oui c'est bien vrai puisque le $score>1 est forcement vrai si PHP aborde cette condition c'est forcement que score >1 :wink:
Une complication que je ne referai pas dans mes codes
Excellente logique =D>

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 16:59
par Nicost
Oui on a posté au même moment sylvaing26, merci en tout cas de ton aide sylvaing26 et Fab.
Donc je comprend beaucoup mieux, mais j'ai beau faire les modifs, il prend toujours 1.jpg.
Sinon pour répondre à ta question, les intervalles exactes ou il doit y avoir les images ne son pas vraiment réelle, car la c'est tous simplement un test, un gros j'essai simplement de faire une function qui permet d'afficher une image à la valeur du chiffre cas l'utilisateur.

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 18:24
par sylvaing26
Tu peux donner ton code modifié stp ?

Re: function simple, mais petit problème

Posté : 22 oct. 2009, 18:57
par Nicost
Oui voila !
SI je met 17 dans un elseif, pas de problème, sinon cela affiche toujours 1.jpg
<?php
function GradeScore($score)
{
if ($score >= 0 && $score <= 1)
{
echo'<img src="images/score/1.jpg">';
}
elseif ($score > 1 && $score <= 4)
{
echo'<img src="images/score/4.jpg">';
}
elseif ($score > 4 && $score <= 10)
{
echo'<img src="images/score/10.jpg">';
}
elseif ($score >10 && $score <= 15)
{
echo'<img src="images/score/15.jpg">';
}
elseif ($score > 15)
{
echo'<img src="images/score/20.jpg">';
}
else
{
echo'aucun score';
}
}

?>