[RESOLU] systement de classement mysql est php

yomane
Invité n'ayant pas de compte PHPfrance

18 juil. 2016, 12:32

bonjour a tous

je suis sur la création d’un concours avec classement

il y a 5 personne qui participe

jais fait une ligne classement son mon tableaux

mes le problème c’est que je voudrait que le classement de chaque joueur se mette devant son nom

mes actuelement jais de 1 a 5 devant tous les nom

je vous join une image

[img]http://up.sur-la-toile.com/i1hUR][img]http://up.sur-la-toile.com/41hUR[/img]

merci a tous


voici la partie du code tableaux plus classement



<?php
mysql_connect('++++++", "++++++", "+++++++"); // Connexion à MySQL
mysql_select_db("+++++++"); // Sélection de la base
  
$reponse = mysql_query("SELECT * FROM +++++ ORDER BY +++++ DESC LIMIT 0,5") or die(mysql_error());

mysql_close(); ?>
 
<table>

 
            <thead>
            <tr class="titre_horizon_classique">
                
            </tr> <table border="2">
            <tr class="titre_horizon_classique">
<th>&nbsp;&nbsp;Classement&nbsp;&nbsp;</th>
                <th>&nbsp;&nbsp;Nom de la task force&nbsp;&nbsp;</th>
                <th>&nbsp;&nbsp;Identifiant de la task force&nbsp;&nbsp;</th>  
                <th>&nbsp;&nbsp;Points de force&nbsp;&nbsp;</th>
                
               
            </tr>
            </thead>
<tbody>
<?php
while($donnees = mysql_fetch_array($reponse)) {
?>

<tr>
<td><center><b><?php
 
$i = 1;
mysql_connect("++++++", "++++++++", "+++++++"); // Connexion à MySQL
mysql_select_db("++++++++"); // Sélection de la base
$resultat = mysql_query("SELECT * FROM ++++++ ORDER BY +++++++ DESC LIMIT 0,5");
while ($pseudo = mysql_fetch_array($resultat))
{
?>
 
<?php echo $i++ ?>
 
<?php
}
 
?>


</td>


<td><?php echo $donnees['nom']?></td>
<td><?php echo $donnees['idforces']?></td>
<td><?php echo $donnees['point'];?></td>







</tr><?php
}?>
 
</tbody></table>


</center>





</tr></body></center></TD>
</TR>
	</form>
avidement les + cest pour cacher ma base de donnée merci a tous

yomane
Invité n'ayant pas de compte PHPfrance

18 juil. 2016, 12:35

voici l'image

Image

yomane
Invité n'ayant pas de compte PHPfrance

18 juil. 2016, 16:15

je me permais un petit up

il me manque plus que sa pour mon site web

je vous laisse le lient pour voire tous mon travail actuelle

http://www.task-forces.fr

cest un site pour le jeux boombeach

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 juil. 2016, 17:24

salut,

il faut que tu calculs le rang dans la requête SQL. Pour cela Dense_rank

J'ai modifié ton code dans ce sens avec un petit nettoyage et un semblant de MVC ;)
<?php
mysql_connect('++++++', '++++++', '+++++++'); // Connexion à MySQL
mysql_select_db('+++++++'); // Sélection de la base

$reponse = mysql_query('SELECT nom, idforces, point, DENSE_RANK() OVER(ORDER BY point DESC) as rang FROM laTableQuiVaBien ORDER BY point DESC LIMIT 0,5');

$data = [];
while($donnees = mysql_fetch_array($reponse)) {
  $data[] = $donnees;
}

mysql_free_result($reponse);
mysql_close();
?>
<table style="text-align:center;margin:auto;"><!-- oui ceinture et bretelle ;) )-->
  <thead>
    <tr class='titre_horizon_classique'>
      <th style="text-align:center;">Classement</th>
      <th style="text-align:center;">Nom de la task force</th>
      <th style="text-align:center;">Identifiant de la task force</th>
      <th style="text-align:center;">Points de force</th>
    </tr>
  </thead>
  <tbody>
<?php
foreach ($data as $donnees) {
?>
    <tr>
      <td style="text-align:center;font-weight:bold;"><?php echo $donnees['rang']; ?> </td>
      <td><?php echo $donnees['nom']; ?></td>
      <td><?php echo $donnees['idforces']; ?></td>
      <td><?php echo $donnees['point']; ?></td>
    </tr><?php
}
?>
  </tbody>
  <tfoot></tfoot>
</table>
@+
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 juil. 2016, 17:29

Bonjour,

Lorsque tu as ouvert la connexion à la base de donnée, il n'est pas nécessaire de la réouvrir à chaque requête. On se connecte une fois pour toute et ensuite on utilise la connexion créée.

Au niveau de ton problème, tu as deux while imbriqués qui exécutent la même requête. Supprime la deuxième connexion à la base, ainsi que la deuxième requête et le deuxième while. Sors ta variable $i de la boucle et affiche le simplement :)

Ps : attention à l'orthographe dans tes messages... ça n'est pas évident de te lire et donc de t'aider si on comprend pas ce que tu dis... et si tu fais des fautes dans ton code, ça ne pardonne pas, alors autant appliquer la même rigueur dans tes messages ;)


Edit : Grillé :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 15 Messages

18 juil. 2016, 18:32

merci de ton aide voici ce que sa me donne une fois en place (image ci dessous )

( par contre je nes pas de champs rang dans ma base mysql )

Image




salut,

il faut que tu calculs le rang dans la requête SQL. Pour cela Dense_rank

J'ai modifié ton code dans ce sens avec un petit nettoyage et un semblant de MVC ;)
<?php
mysql_connect('++++++', '++++++', '+++++++'); // Connexion à MySQL
mysql_select_db('+++++++'); // Sélection de la base

$reponse = mysql_query('SELECT nom, idforces, point, DENSE_RANK() OVER(ORDER BY point DESC) as rang FROM laTableQuiVaBien ORDER BY point DESC LIMIT 0,5');

$data = [];
while($donnees = mysql_fetch_array($reponse)) {
  $data[] = $donnees;
}

mysql_free_result($reponse);
mysql_close();
?>
<table style="text-align:center;margin:auto;"><!-- oui ceinture et bretelle ;) )-->
  <thead>
    <tr class='titre_horizon_classique'>
      <th style="text-align:center;">Classement</th>
      <th style="text-align:center;">Nom de la task force</th>
      <th style="text-align:center;">Identifiant de la task force</th>
      <th style="text-align:center;">Points de force</th>
    </tr>
  </thead>
  <tbody>
<?php
foreach ($data as $donnees) {
?>
    <tr>
      <td style="text-align:center;font-weight:bold;"><?php echo $donnees['rang']; ?> </td>
      <td><?php echo $donnees['nom']; ?></td>
      <td><?php echo $donnees['idforces']; ?></td>
      <td><?php echo $donnees['point']; ?></td>
    </tr><?php
}
?>
  </tbody>
  <tfoot></tfoot>
</table>
@+

Eléphanteau du PHP | 15 Messages

18 juil. 2016, 18:34

bonjour a est merci a de ton aide

oui je sais je suis une merd......... en français c’est un gros problème

je vait essayer de faire se que ma dis merci de ton aide

Bonjour,

Lorsque tu as ouvert la connexion à la base de donnée, il n'est pas nécessaire de la réouvrir à chaque requête. On se connecte une fois pour toute et ensuite on utilise la connexion créée.

Au niveau de ton problème, tu as deux while imbriqués qui exécutent la même requête. Supprime la deuxième connexion à la base, ainsi que la deuxième requête et le deuxième while. Sors ta variable $i de la boucle et affiche le simplement :)

Ps : attention à l'orthographe dans tes messages... ça n'est pas évident de te lire et donc de t'aider si on comprend pas ce que tu dis... et si tu fais des fautes dans ton code, ça ne pardonne pas, alors autant appliquer la même rigueur dans tes messages ;)


Edit : Grillé :)

Eléphanteau du PHP | 15 Messages

18 juil. 2016, 20:55

je me permet un petit up

Eléphanteau du PHP | 15 Messages

18 juil. 2016, 22:00

merci grâce a ce que tu ma dit c’est régler merci de ton aide

a bientôt

Bonjour,

Lorsque tu as ouvert la connexion à la base de donnée, il n'est pas nécessaire de la réouvrir à chaque requête. On se connecte une fois pour toute et ensuite on utilise la connexion créée.

Au niveau de ton problème, tu as deux while imbriqués qui exécutent la même requête. Supprime la deuxième connexion à la base, ainsi que la deuxième requête et le deuxième while. Sors ta variable $i de la boucle et affiche le simplement :)

Ps : attention à l'orthographe dans tes messages... ça n'est pas évident de te lire et donc de t'aider si on comprend pas ce que tu dis... et si tu fais des fautes dans ton code, ça ne pardonne pas, alors autant appliquer la même rigueur dans tes messages ;)


Edit : Grillé :)

Eléphanteau du PHP | 15 Messages

18 juil. 2016, 22:02

sujet résolut merci de votre aide