Bonsoir,
J'ai un classement de joueurs qui ont un rang attribué en fonction de leur nombre de points.
50 joueurs sont affichés par page du classement.
Cependant, ma pagination apporte des conflicts aux rangs des joueurs à la page 2. Pour les autres pages, elle fonctionne bien et affiche +50 joueurs à chaque fois.
1ère page:
#1 joueur 1
#2 joueur 2
[...]
#50 joueur 50
2ème page:
#101 joueur 51
#102 joueur 52
[...]
#150 joueur 100
3ème page:
#151 joueur 101
#152 joueur 102
[...]
#200 joueur 150
[...]
La suite fonctionne bien, mais il y a toujours ce décalage de 50 causé lors du passage à la deuxième page.
Pour la pagination, je me suis aidé d'un tutoriel proposé sur Developpez.
Voici le code produit:
J'ai vraiment besoin de votre aide. :/
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
39
40
41 <?php $per_page = 50; $query_total = mysqli_query($mysqli, ' SELECT playername FROM accounts ORDER BY points DESC'); $total = mysqli_num_rows($query_total); $nb_pages = ceil($total / $per_page); if (isset($_GET['page'])) { $current_page = intval($_GET['page']); if ($current_page > $nb_pages) $current_page = $nb_pages; } else $current_page = 1; $first_input = ($current_page - 1) * $per_page; $first_input = is_numeric($first_input) && $first_input >= 0 ? $first_input : 0; $query_players = mysqli_query($mysqli, ' SELECT playername FROM accounts ORDER BY points DESC LIMIT ' . $first_input . ', ' . $per_page); if (!isset($_GET['page']) || isset($_GET['page']) && $_GET['page'] == 1) $i = 1; else $i = 1 + ($_GET['page'] * $per_page); while ($data_players = mysqli_fetch_assoc($query_players)) { $players_name = htmlspecialchars($data_players['playername']); echo 'Rang: ' . $i . ' - Joueur: ' . $players_name . '<br />'; ++$i; }
En esperant que vous puissiez m'apporter un peu de lumière.
Bien à vous,
Spire.
Partager