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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
if(!isset($_GET['pg']))
{
$pg = 1;
}
else
{
$pg = $_GET['pg'];
}
//on verifie si la variable qui est censcée etre un numero de page est bien un chiffre,
//cela evite qu'un gogole vous pirate avec une injection mysql
if(!is_numeric($pg))
{
$pg = 1;
}
//connexion mysql
$link = mysql_connect("$hostname_formConn", "$username_formConn", "$password_formConn") or die("Erreur de connexion: ".mysql_error($link));
//chois d'une bdd
mysql_select_db("$database_formConn",$link) or die("Erreur de connexion: ".mysql_error($link));
//c'est le nb d'enregstrements à affiche par page:
$enreg_par_pg = 100;
//ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
$limit = $enreg_par_pg*$pg-$enreg_par_pg;
//requete SQL
$SQL = "SELECT * FROM ma_table";
//fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente. Le paramètre "params" m'était utile mais peut être supprimé
function pgs($enreg_par_pg, $pg, $link, $SQL, $params)
{
//ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
$limit = $enreg_par_pg*$pg-$enreg_par_pg;
//c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
$res = mysql_query($SQL . " ORDER BY `event_cp_event` ASC", $link)or die("Erreur MySQL: ".mysql_error($link));
$nb_enreg = mysql_num_rows($res);
if($nb_enreg != 0)
{
//on calcule le nb de pages
$nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );
//numero de page precedente
$pp = $pg - 1;
//numero de la page suivante
$ps = $pg + 1;
echo("Page(s) : ");
//si l'utilisateur se se trouve pas a la page n°1
if($pg != 1)
{
//on affiche un lien page précedente
//si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
echo "<a href='foire.php?pg=$pp$params'><<<u>page précédente</u> </a>";
}
//definition d'une variable pour la boucle
$i=1;
//la syntaxe do...while permet d'effectuer la boucle au moins une fois!
while($i <= $nb_pg_rounded)
{
if($i != 1)
{
echo("|");
}
//si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
if($i != $pg)
{
//...on affiche un lien vers cette page
//idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
echo " <a href='foire.php?pg=$i$params'><u>$i</u></a>\n";
}
else
{
//...sinon on affiche simplement le n° de la page actuelle
echo " $i ";
}
//incrémentation de la viariable de la boucle
$i++;
//on recommence tant que $i n'atteint pas le numero de la derniere page
}
//si l'utilisateur n'est pas a la derniere page...
if($pg != $nb_pg_rounded)
{
//...on affiche un lien page suivante
//idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
echo " <a href='foire.php?pg=$ps$params'><u>page suivante>></u></a>";
}
}
}
//Appel de l'affichage de la pagination
pgs($enreg_par_pg, $pg, $link, $SQL, "&Recherche=Rechercher&date_start=" . $_POST['date_start'] . "&date_end=" . $_POST['date_end'] . "&list0=" . $_POST['list0'] . "&list1=" . $_POST['list1'] . "&list2=" . $_POST['list2'] . "&list3=" . $_POST['list3']);
//Appel avec params vide
pgs($enreg_par_pg, $pg, $link, $SQL, ""); |
Partager