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 PHP [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut Classement PHP
    Slt tous le monde,
    Bon voila, je suis entrain de préparer un scritp de classement de joueurs en fonction de leur nombre de points.....

    Ex : Joueur 1 : 12
    Joueur 2 : 31
    Joueur 3 : 61
    Joueur 4 : 12
    Joueur 5 : 24
    Joueur 6 : 13
    Joueur 7 : 0

    J'ai fait ce script :

    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
     
    <?
     
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('site',$db); 
    $sql = 'SELECT points FROM membre ORDER BY points ';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);
    mysql_free_result ($req);
    mysql_close ();
     
    $stats = $data['points'];
     
    echo "$stats"
     
    ?>
    Mais ca marche pas.... ca m'affiche 0

    Peut on m'aider svp ???

    et 2eme question :
    Comment générer un tableau qui affiche le classement ?
    C'est à dire :

    Un tableau à 3 colonnes : Classement / Pseudo / Points

    Voila,
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Par défaut
    mysql_fetch_array te retourne le premier résultat, soit si tes points sont classés dans l'ordre : 0

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data=mysql_fetch_array($req);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while($data=mysql_fetch_array($req)) {
         echo $data['points'].'<br />';
    }
    Pour ta deuxième question, commence par rajouter le champ pseudo dans ta clause SELECT, ensuite pour ce qui est du classement, tu peux trier tes joueurs par ordre de points décroissants en rajoutant un ORDER BY points DESC dans ta requete, ensuite le classement correspondra à l'itération du while. (à toi de rajouter par exemple une variable $classement initialisée à 0 et qui s'incrémente à chaque tour de boucle.[/code]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Merci bien

    Citation Envoyé par aravis
    Pour ta deuxième question, commence par rajouter le champ pseudo dans ta clause SELECT, ensuite pour ce qui est du classement, tu peux trier tes joueurs par ordre de points décroissants en rajoutant un ORDER BY points DESC dans ta requete, ensuite le classement correspondra à l'itération du while. (à toi de rajouter par exemple une variable $classement initialisée à 0 et qui s'incrémente à chaque tour de boucle.[/code]
    J'ai bien peur de ne pas comprendre certaines choses.... le DESC marche tres bien mais le reste je ne sais pas exsactement commelent le présenter ^^
    Peut tu me montrer à quoi doit ressembler le script stp

    Voici ce que j'ai réussi a faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $stats = $data['points'];
    $cl = 0;
    $classement = $cl + 1;
    Mais comment le incrémenter a chaque tour de boucle ?
    et comment afficher le pseudo qui va avec le score ?

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    si quelqun connait la réponse, n'hésitez pas a vous manifester lol ^^

    Merci d'avance

    Edit :
    J'ai trouvé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $i = 1;
    while ($i <= 10) {
       echo $i++;  
    }
    Je sais pas si c'est ca....mais en tout cas si c'est ca je sais pas comment le faire "fusionner" avec les points...
    Et le tout faire rentrer dans un tableau :s

    Bon en gros, je suis perdu donc HELP PLZ !!!!!!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Personne n'a d'idée ??????

  6. #6
    Fabouney
    Invité(e)
    Par défaut
    Bonjour, c'est tout simple.

    tout se passe dans ta requête.

    déjà tu tri pas les points en sens décroissant, sinon tu fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT points FROM membre ORDER BY points DESC limit 0, 5';
    la ca va te prendre les 5 premier joueurs. si tu veux les 10 premier et bien tu modifie l'indice dans la clause limit.
    vous vous prenez la tête des fois a vouloir faire un traitement apres alors que c tt bête avec mysql.


    correction complèter :
    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
    <?
     
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('site',$db);
    $sql = 'SELECT pseudo,points FROM membre ORDER BY points DESC limit 0, 5';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    echo '<table border="1" cellpadding="3" cellspacing="0" width="50%">';
    echo '<tr>';
    echo '<td>Classement</td>';
    echo '<td>Pseudo</td>';
    echo '<td>points</td>';
    echo '</tr>';
     
    $classement = 1;
     
          while( $data = mysql_fetch_assoc($req) ){
                echo '<tr>';
                echo "<td>$classement</td>";
                echo "<td>$data['pseudo']</td>";
                echo "<td>$data['points']</td>";
                echo '</tr>';
     
          $classement++;
          }
     
    echo '</table>';
     
    mysql_free_result ($req);
    mysql_close ();
    ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Merci beaucoup mais ca m'affiche une erreur :s

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\classement.php on line 28

    la ligne 28 correspond à : echo "<td>$data['login']</td>";


    Je comprend pas pourquoi ca affiche ca :s
    Quelqu'un sait ?

  8. #8
    Fabouney
    Invité(e)
    Par défaut
    re, désolé petite erreure de ma part :

    correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<td>".$data['pseudo']."</td>";
    echo "<td>".$data['points']."</td>";

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

Discussions similaires

  1. [MySQL] Faire un classement php/mysql
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/03/2011, 03h46
  2. [MySQL] Un classement pour un concours en php
    Par nO_life dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/08/2008, 14h50
  3. Classement des CMS PHP
    Par soumou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 23/04/2007, 00h00
  4. Réponses: 1
    Dernier message: 23/12/2006, 23h39
  5. [SQL] Classement et moteur de recherche PHP
    Par fabrice78 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/07/2006, 11h21

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