IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Boucle qui ne veut pas décrémenter


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 129
    Points : 57
    Points
    57
    Par défaut Boucle qui ne veut pas décrémenter
    Ce script est sensé afficher des étoiles d'une note:


    $eto est une moyenne qui est une note sur 10.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for($i=0;$i<10;$i++){
    if($eto>=1){
    echo "<img src=img/etoilecomp.jpg>";
    $eto--;
    echo $i."<br>";
    }
    if($eto>=0.5 && $eto<1){
    echo "<img src=img/etoiledemi.jpg>";
    $eto=$eto-0.5;
    echo $i."<br>";
    }
    if($eto<0.5){
    echo "<img src=img/etoilevide.jpg>";
    echo $i."<br>";
    }
    }
    J'obtiens un blocage sur la boucle pour une note moyenne de 5.5. La valeur $i=4 revient trois fois. J'obtiens donc 12 étoiles...



    Merci beaucoup pour votre aide, je tourne en rond la dessus depuis une heure.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut mettre des elseif sinon tu valides les 3 tests quand tu tombes à 1,5.

    Mais plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $moyenne = 5.5;
    $stars = floor($moyenne);
    echo str_repeat('<img src="img/etoilecomp.jpg">', $stars);
    if ($stars != $moyenne) {
        echo '<img src="img/etoiledemi.jpg">';
        $stars++;
    }
    echo str_repeat('<img src="img/etoilevide.jpg">', 10 - $stars);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 129
    Points : 57
    Points
    57
    Par défaut notation étoilée
    Ca fonctionne impeccablement, merci beaucoup.

    Pour ceux qui auraient besoin du script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for($i=0;$i<10;$i++){
    if($eto>=1){
    echo "<img src=img/etoilecomp.jpg>";
    $eto--;
    }
    elseif($eto>=0.5 && $eto<1){
    echo "<img src=img/etoiledemi.jpg>";
    $eto=$eto-0.5;
    }
    elseif($eto<0.5){
    echo "<img src=img/etoilevide.jpg>";
    }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle qui ne veut pas boucler
    Par akuralyo dans le forum Langage
    Réponses: 1
    Dernier message: 06/12/2012, 16h13
  2. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41
  3. JOptionPane qui ne veut pas se fermer!
    Par benthebest dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 29/12/2005, 22h05
  4. un fichier qui ne veut pas être supprimé!!!!
    Par en_stage dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/10/2005, 01h08
  5. Réponses: 1
    Dernier message: 28/07/2005, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo