Pagination

cs_Dranog Messages postés 13 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 18 janvier 2012 - 5 janv. 2012 à 20:37
kosovar49 Messages postés 31 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 3 juillet 2012 - 6 janv. 2012 à 10:47
Bonjour, je souhaiterais faire un système de pagination à partir de ce code :
<?php

Connection_mySql();
mysql_select_db("test") or die("erreur de connexion a la base de donnees");
$query = 'SELECT * FROM `article` WHERE `idCat`='.$_GET['cat'].' LIMIT 0,11';
$result = mysql_query($query) or die("erreur!!");
$if = 0;
echo "<table border="0">";
echo "<tr>";
while($row = mysql_fetch_row($result)){
$i++;
echo "<td>";
echo "";
echo "";
echo "";
echo "</td>";
if($i==1){
$i=0;
echo "</tr>";
echo "</tr>";
}
}
echo "</tr>";
echo "<table>";
mysql_close();
?>

mais je ne sais pas par ou je dois commencer...

Un petit coup de main me serait le bienvenue.

merci d'avance.

1 réponse

kosovar49 Messages postés 31 Date d'inscription jeudi 12 mars 2009 Statut Membre Dernière intervention 3 juillet 2012
6 janv. 2012 à 10:47
Bonjour,
Il faut tout d'abord que tu définisses combien de donnée tu veux affiché par page. Dans ta requête "limite 0,10" tu remplaceras tes valeurs par des variables.

Il faut que tu calcul combien de données te retourne ta requête pour que tu puisses calculé le nombre de page : $nbPage = ceil($nbDonnée/$nbDonnéeAfficherParPage). la fonction ceil permet d'arrondir à l'entier supérieur.

Tu dois définir un numéro de page sur lequel tu te trouve, donc $numPage = 1;

Ensuite tu fais un lien pour accédé aux pages suivantes une truc du genre : < 1-2-3-4 >
quand tu clic sur le 2 tu es dirigé vers la même page mais en paramètre tu passe le numéro de la page.

Quand tu arrivera sur la page 2, tu referas la requête mais la variable qui contient 0 dans le limite sera = ($numPage*$nbDonnéeAfficherParPage)-nbDonnéeAfficherParPage;

cas concret :
page 1 : limit 0,10 = 10 premiers enregistrement
page 2 : limit 10,10 = de 10 à 20;
page 3 : limit 20,10 = de 20 à 30;
.
.
.

Voilà j'espère avoir été assez clair :s.
0