JeuWeb - Crée ton jeu par navigateur
Pour un classement par page, chiffre repartant a 0 a chaque page - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Pour un classement par page, chiffre repartant a 0 a chaque page (/showthread.php?tid=823)



Pour un classement par page, chiffre repartant a 0 a chaque page - Kassak - 29-04-2007

Alors, j'ia un tableau pour mon classement, qui classe 15 membre par page, donc si on clique sur la page 2, on ira voir les membre 15 a 30 etc...

J'y est mis une case position, avec un chiffre qui augmente de 1 dans chaque case, ca marche nickel, seulement, quand on clique sur une autre page, le chiffre repart a 1, au lieu de repartir par exemple a 16 pour la 2eme page, vous voyez??

Je vous lahce mon code :

Code PHP :
<?php
$pseudo_joueur
= $_SESSION['pseudo'];

$nombrepseudo = 15; // Essayez de changer ce nombre pour voir :o)

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM membre');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nbre_entrees'];

// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombrepseudo);

// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for (
$i = 1 ; $i <= $nombreDePages ; $i++)
{
echo
'<a href="classement.php?page=' . $i . '">' . $i . '</a> ';
}
?>
<br />
<br />
<?php

if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse
}
else
// La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
$premierMessageAafficher = ($page - 1) * $nombrepseudo;

$reponse = mysql_query('SELECT * FROM membre ORDER BY experience DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombrepseudo) or die(mysql_error());
$numenr = mysql_num_rows($reponse); //nombre d'enregitrement revnoyés par la requete

echo '<table width="450" border="1" style="margin:0px; padding:0px;">
<tr>
<td><b>Position</b></td>
<td><b>Pseudo</b></td>
<td><b>Experience</b></td>
<td><b>PK</b></td>
</tr><tr>'
;

$cpt3 = 0; // le compteur

while ($donnees = mysql_fetch_array($reponse) )
{



$cpt3++;
$nombre++;

if (
$cpt3 == 2) {
echo
'</tr><tr>'; // on ouvre une nouvelle ligne
$cpt3 = 1;
}
echo
"<td>$nombre</td>";
echo
'<td> '.$donnees['pseudo'].'</td>';
echo
'<td>'.$donnees['experience'].'</td>';
echo
'<td>'.$donnees['pk'].'</td>';


}
echo
'</tr></table>';
?>


Merci de m'aider je ne vois pas trop comment faire ça?


RE: Pour un classement par page, chiffre repartant a 0 a chaque page - Yoda54 - 29-04-2007

Bonjour,

Il te suffit d'initialiser correctement ta variable $nombre avant de lancer ta boucle:

$nombre=$page*15+1;

Une petite question: tu ne penses pas que tu te compliques inutilement la vie avec ton $cpt3?


RE: Pour un classement par page, chiffre repartant a 0 a chaque page - Kassak - 29-04-2007

J'ai fais cela :
$nombre = 0;

if ($page > 1) {
$nombre = ($page*15-15);
}

et ca marche nickel, et pourquoi ca pour le compteur?


RE: Pour un classement par page, chiffre repartant a 0 a chaque page - Yoda54 - 29-04-2007

Le if est inutile, si tu souhaites laisser la valeur 1 pour ta première page, il te suffit d'initialiser $nombre de cette façon:

$nombre=($apge-1)*15+1;

Au sujet de ton compteur, tu fais là aussi un if inutile. Enlève l'ouverture de ligne présente dans le echo qui précède la boucle et tu verras que tu n'auras pas besoin de ta variable $cpt3

Code PHP :
<?php 
echo '<table width="450" border="1" style="margin:0px; padding:0px;">
<tr>
<td><b>Position</b></td>
<td><b>Pseudo</b></td>
<td><b>Experience</b></td>
<td><b>PK</b></td>
</tr>'
;

while (
$donnees = mysql_fetch_array($reponse) )
{
echo
'<tr>
<td>'
.$nombre.'</td>
<td>'
.$donnees['pseudo'].'</td>
<td>'
.$donnees['experience'].'</td>
<td>'
.$donnees['pk'].'</td>
</tr>'
;
$nombre++;
}
echo
'</table>';