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 :

Comment afficher un rang sur un forum


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut Comment afficher un rang sur un forum
    Bonjour,

    Voila, je fais un forum et je souhaite afficher le rang de l'utilisateur (à coté de son pseudo) par rapport au nombre de messages postés par ce dernier.

    Exemple :
    entre 0 et 49 messages postés = 0 étoile
    entre 50 et 99 messages postés = 1 étoile
    entre 100 et 199 messages postés = 2 étoiles
    etc... jusqu’à un maximum de 5 étoiles

    J'ai créé une petite image "étoile".. mais je ne sais pas comment incrémenter de +1 à chaque fois.. pour qu'une deuxième étoile s'ajoute côte-à-côte si la condition est remplie.

    En effet, il existe deux méthodes, l'une consiste à faire une seule image et ensuite d'incrémenter de +1 (comme mon cas).
    et l'autre méthode consiste à faire 5 images avec un nombre d’étoile différent sur chaque images.

    J'ai opté pour la première solution.. une seule image mais je ne sais pas comment incrémenter de +1 étoile. Pour le système de conditions j'ai pensé à http://php.net/manual/fr/control-structures.switch.php dans une function php avec comme paramètre : $nb_msg

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 31
    Par défaut
    Je ne connais pas la syntaxe de php par coeur mais pourquoi tu fais pas quelque chose comme ça :

    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
    17
     
     
    function afficherEtoiles($nbmsg){
         //Pour avoir le nbr d'étoiles on divise le nb de message par 50 et on caster en int. Par exemple, pour 43 ca fera 0,xxxxxxxxxx caster en int = 0
         $nbEtoiles = int(($nbmsg/50));
     
         //Pour gérer les cas ou y a bcp d'étoiles
         if ($nbEtoiles > 5) $nbEtoiles = 5;
     
         //On commence notre div qui va contenir toutes les étoiles
         echo "<div id='userEtoiles'>";
         //Boucle qui affiche $nbEtoiles étoiles
         for ($i=0;i<$nbEtoiles;i++){
           echo "<img src='monEtoile.png' alt='etoile'/>";
         }
         echo "</div>";
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    Ton code est intéressant mais là tu incrémente 1 étoile à chaque 50 msgs. Moi je veux pouvoir choisir s'il faut 200 msgs pour obtenir la deuxième étoile et par exemple 600 msgs pour la troisième etc..

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 31
    Par défaut
    Tu peux faire ça si tu veux une fonction qui est modulable comme tu veux.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    function afficherEtoiles($nbMsg){
     //On définit le tableaux de rangs d'étoiles
     $tab = array (
      0,         // 0 étoiles
      50,       // 1 étoiles
      200,     // 2 étoiles
      600,     // 3 étoiles
      1000      // 4 étoiles
      //etc..
     ) 
     $nbEtoiles = -1;
     //On trouve entre les quels on est (on compare $nbMsg a un terme du tableau et sont suivant et on regarde si $nbMsg est entre les deux)
     for($i=0;$i<count($tab)-1;$i++){
      if ($nbMsg >= $tab[i] && $nbMsg < $tab[i+1]){
          $nbEtoiles = $i;
      }
     } 
     //Si on est au dessus des paliers
     if($nbEtoiles = -1) $nbEtoiles = count($tab)-1;
     
     //On commence notre div qui va contenir toutes les étoiles
     echo "<div id='userEtoiles'>";
     //Boucle qui affiche $nbEtoiles étoiles
     for ($i=0;i<$nbEtoiles;i++){
      echo "<img src='monEtoile.png' alt='etoile'/>";
     }
     echo "</div>";
    }
    Je suis pas sur à 100% que ça marche, il se fait tard

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ foreach()

    2/ str_repeat()

  6. #6
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    Il y a une erreur à la ligne 25 de ton code :
    ( ! ) Parse error: syntax error, unexpected '++' (T_INC), expecting ')' in C:\wamp64\www\site3\test.php on line 28
    jreaux62 : tu peux développer un peu plus ? car là.. je ne comprends pas.

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 20/06/2006, 15h46
  2. Evolution des grades et rangs sur le forum
    Par lucky31 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 09/05/2006, 19h27
  3. [TDrawGrid]Comment afficher une colonne sur quatre ?
    Par Laurent Dardenne dans le forum Composants VCL
    Réponses: 5
    Dernier message: 11/02/2006, 17h42
  4. Réponses: 2
    Dernier message: 09/11/2005, 12h53

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