voila j'effectue dans mon code une requete SQL qui me retourne plusieurs milliers de résultats
je veux les afficher dans un tableau avec une LIMIT
et un lien vers les autres pages
jusque la j'ai réussi a faire ce que je voulais
mon pb concerne les liens vers les autres pages
car il s'affiche sur la page autant de liens que de pages
et la actuellement il s'affiche pres de 200liens
ce qui est lourd
moi je voudrais afficher ces liens 10 par 10
un peu comme sur google apres une recherche
avec un lien vers les 10suivantes etc...
voici mon code :
Code :
<?php
if(!isset($_GET['pg'])){
$pg = 1;
}else{
$pg = $_GET['pg'];
}
//on verifie si la variable qui doit etre un numero de page est bien un chiffre,
//pour plus de sécurité
if(!is_numeric($pg)){
$pg = 1;
}
//connexion mysql
mysql_select_db($database, $dbconnect);
//c'est le nb d'enregistrements à afficher par page:
$enreg_par_pg = 18;
//fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente:
function pgs($enreg_par_pg, $pg, $dbconnect)
{
//c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
$requete = sprintf("SELECT * FROM shalmlis" );
$res = mysql_query($requete, $dbconnect) or die(mysql_error());
mysql_close($dbconnect);
$nb_enreg = mysql_num_rows($res);
//on calcule le nb de pages
$nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur
//numero de page precedente
$pp = $pg - 1;
//numero de la page suivante
$ps = $pg + 1;
//si l'utilisateur ne se trouve pas a la page n°1
if($pg != 1){
//on affiche un lien page précedente
echo "<a href='?page=29&pg=$pp'><<</a>";
}
//definition d'une variable pour la boucle
$i=1;
do{
//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
echo " <a href='?page=29&pg=$i'>$i</a>\n";
}else{
//...sinon on affiche simplement le n° de la page actuelle
echo " $i ";
}
$i++;
//on recommence tant que $i n'atteint pas le numero de la derniere page
}while($i <= $nb_pg_rounded);
//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='?page=29&pg=$ps'>>></a>";
}
}
//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 selectione $enreg_par_pg resultats
$requete = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg " );
$reponse = mysql_query($requete, $dbconnect) or die(mysql_error());
//$reponse = mysql_query("SELECT * FROM shalmlis LIMIT $limit, $enreg_par_pg" );
$i=0;
while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau
{
$tablo0[$i]=$retour[0];
$tablo1[$i]=$retour[1];//on recupere chaque colonnes dans des tableaux
$tablo2[$i]=$retour[2];
$tablo3[$i]=$retour[3];
$tablo4[$i]=$retour[4];
if($i%2==0){
$couleur="#E6E6E6";
$couleur2="#A9FF8F";}
else {
$couleur="#C0C0C0";
$couleur2="#A9FF8F";}
//on affiche chaque colonne dans la table avec une couleur differente pour chaque ligne
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.