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

PHP & Base de données Discussion :

classement 1er, 2ème [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut classement 1er, 2ème
    Bonjour,
    je voudrais faire un classement par point mais ce qui me bloque c'est donner le même rang à deux personnes qui ont le même point.
    voici mon code:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("forumu");
    function classement(){
    //if(isset($_GET['id'])) $id = urldecode($_GET['id']); 
     
    $results = array();
    $sql = "SELECT  nomcl,pointcl FROM classement ORDER BY pointcl desc";
    $query = mysql_query($sql) or die("error");
    while($row = mysql_fetch_assoc($query)){
        $results[] = $row;
      }
      return $results;
    }  
     
    ?>
    <?php
     
    $rang=0;
     $classements = classement();
    foreach($classements  as $classement){
    $rang++;
    ?>
        <table width="914" border="1" >
    	<tr style="font-family:Georgia, 'Times New Roman', Times, serif; font-size:14px; background-color:#CDCDCD; color:#000">
          <td width="73" align="center"></td>
          <td width="48" align="center"><?php echo $classement["nomcl"];  ?></td>
          <td width="114" align="center"><?php  echo $classement["pointcl"]; ?></td>
     
          <td width="46" align="center"><?php  echo $rang; ?> </td>
     
      </tr>
     </table>
     
     <?php
    }
    ?>
    merci d'vavance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Éventuellement en mémorisant le nb de points de la personne d'avant et en incrémentant le rang que si le nombre de points est différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $nPointsPrecedent = 0;
    foreach($classements  as $classement){
    if ($nPointsPrecedent != $classement["pointcl"]) {
        $rang++;
        $nPointsPrecedent = $classement["pointcl"];
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Merci pour l'avancée mais cela ne resoud pas entièrement mon problème.
    quand il met par exemple 1er,2ème,3ème,3ème, il met 4ème.je voudrais que ce soit ainsi:
    1er 2ème, 3ème,3ème, 5ème.
    car je pense que c'est plus logique.car si l'effectif d'une classe est 5, et qu'il y a des Ex aequo,il est normal que la personne suivante soit (5ème)
    merci encore pour ton soutien

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Alors il faut deux compteurs : un qui incrémente et un qui affiche le rang. Quelque chose comme ça, peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $nPointsPrecedent = 0;
    $rang = 0;
    $cpt = 0;
    foreach($classements  as $classement){
      $cpt++; // on incrémente toujours le compteur
      if ($nPointsPrecedent != $classement["pointcl"]) {
          $rang = $cpt;
          $nPointsPrecedent = $classement["pointcl"];
      }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Inscrit en
    Mars 2013
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Ca marche à merveille.
    merci merci merci merci merci merci merci ...

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

Discussions similaires

  1. [Débutant] Classement 1ER,2ème,3ème selon la moyenne dans un datagrid
    Par keunene dans le forum VB.NET
    Réponses: 8
    Dernier message: 04/09/2014, 09h27
  2. Réponses: 1
    Dernier message: 28/04/2009, 17h09
  3. Réponses: 2
    Dernier message: 25/10/2008, 13h25
  4. 1er bouton désactivé quand 2ème cliqué..
    Par Yohann_x dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/08/2007, 00h56
  5. Classement en fonction de la 1er lettre
    Par electrotiti dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2007, 17h23

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