Tom's Guide > Forum > Programmation > PB liens sur pages apres requete SQL
Mot :    Pseudo :           
 

bonjour a tous,

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 :
  1. <?php
  2. if(!isset($_GET['pg'])){
  3.     $pg = 1;
  4. }else{
  5.     $pg = $_GET['pg'];
  6. }
  7. //on verifie si la variable qui doit etre un numero de page est bien un chiffre,
  8. //pour plus de sécurité
  9. if(!is_numeric($pg)){
  10.     $pg = 1;
  11. }
  12. //connexion mysql
  13. mysql_select_db($database, $dbconnect);
  14. //c'est le nb d'enregistrements à afficher par page:
  15. $enreg_par_pg = 18;
  16. //fonction qui affiche les liens vers les autres pages, ainsi que les liens page suivante et page precedente:
  17. function pgs($enreg_par_pg, $pg, $dbconnect)
  18. {
  19. //c'est la requete qui doit permettre le nombre de résultats total qui va etre reparti sur plusieurs pages
  20.     $requete = sprintf("SELECT * FROM shalmlis" );
  21.     $res = mysql_query($requete, $dbconnect) or die(mysql_error());
  22.     mysql_close($dbconnect);
  23.     $nb_enreg = mysql_num_rows($res);
  24.     //on calcule le nb de pages
  25.     $nb_pg_rounded = ceil( $nb_enreg / $enreg_par_pg );//arrondi au nb supérieur
  26.     //numero de page precedente
  27.     $pp = $pg - 1;
  28.     //numero de la page suivante
  29.     $ps = $pg + 1;
  30.     //si l'utilisateur ne se trouve pas a la page n°1
  31.     if($pg != 1){
  32.         //on affiche un lien page précedente
  33.         echo "<a href='?page=29&pg=$pp'><<</a>";
  34.     }
  35.     //definition d'une variable pour la boucle
  36.     $i=1;
  37.     do{
  38.         //si $i n'est pas egal au numero de la page sur laquelle se trouve l'utilisateur...
  39.         if($i != $pg){
  40.             //...on affiche un lien vers cette page
  41.             echo " <a href='?page=29&pg=$i'>$i</a>\n";
  42.         }else{
  43.             //...sinon on affiche simplement le n°  de la page actuelle
  44.             echo " $i ";
  45.         }
  46.     $i++;
  47.     //on recommence tant que $i n'atteint pas le numero de la derniere page
  48.     }while($i <= $nb_pg_rounded);
  49.     //si l'utilisateur n'est pas a la derniere page...
  50.     if($pg != $nb_pg_rounded){
  51.         //...on affiche un lien page suivante
  52.         //idem: si votre script a besoin d'autre variable pour fonctionner n'oublier pas des les transmettre en ajoutant &var=$var...
  53.         echo " <a href='?page=29&pg=$ps'>>></a>";
  54.     }
  55. }
  56. //ici on calcule à partir de quel enregistrement il faut afficher $enreg_par_pg résultats
  57. $limit = $enreg_par_pg*$pg-$enreg_par_pg;
  58. //c'est la requete qui selectione $enreg_par_pg resultats
  59. $requete = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg " );
  60. $reponse = mysql_query($requete, $dbconnect) or die(mysql_error());
  61. //$reponse = mysql_query("SELECT * FROM shalmlis LIMIT $limit, $enreg_par_pg" );
  62. $i=0;
  63.     while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau
  64.     {
  65.         $tablo0[$i]=$retour[0];
  66.         $tablo1[$i]=$retour[1];//on recupere chaque colonnes dans des tableaux
  67.         $tablo2[$i]=$retour[2];
  68.         $tablo3[$i]=$retour[3];
  69.         $tablo4[$i]=$retour[4];
  70.         if($i%2==0){
  71.         $couleur="#E6E6E6";
  72.         $couleur2="#A9FF8F";}
  73.     else {
  74.         $couleur="#C0C0C0";
  75.         $couleur2="#A9FF8F";}
  76.     //on affiche chaque colonne dans la table avec une couleur differente pour chaque ligne
  77.     echo '  <tr bgcolor="',$couleur,'" onmouseover="this.style.backgroundColor=\'',
  78.         $couleur2,'\'" onmouseout="this.style.backgroundColor=\'',$couleur,'\'">
  79.             <TD> ',$tablo0[$i],'</TD> 
  80.             <TD> ',$tablo1[$i],' </TD>
  81.             <TD> ',$tablo2[$i],' </TD>
  82.             <TD> ',$tablo3[$i],' </TD>
  83.             <TD> ',$tablo4[$i],' </TD>
  84.             </TR>
  85.             ';
  86.         $i=$i+1;
  87.     }
  88. // Libération des ressources prises par le fetch_array
  89. mysql_free_result($reponse);
  90. //on appele la fonction précédament créée pour afficher les liens vers les autres pages
  91. echo "<br>";
  92. pgs($enreg_par_pg, $pg, $dbconnect);
  93. ?>




j'espere que quelqu'un saura me répondre
car j'avoue que je suis pas un expert
merci d'avance.

bye.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Tom's Guide > Forum > Programmation > PB liens sur pages apres requete SQL
Aller à :

Il y a 856 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

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.

Répondre Annuler
Liens