Pagination php

Bonjour, j'ai un formulaire où l'on selectionne des critere de recherche et à la suite duquel vont s'afficher les resultat dans un tableau. Le probleme est que j'aurai voulu faire une pagination et la première page s'affiche mais la suite rien. En fait j'ai utilisé la methode post et il parait qu'avec cette methode je ne pourrai qu'afficher la 1ère page s'il y a un autre moyen pourriez vous m'aider s'il vous plait
Merci
ps: c'est en php
Configuration: Windows 2003
Safari 530.5

4 réponses

  1. Bonsoir,

    ton formulaire récupère des données dans la base de données ?
    bonne soirée
    1. slt nico j'aurais je crois ke j'aurai du commencer par là
      je repond à la place de federer_parce kil m'a demandé de verifier s'il avai reçu une reponse
      merci
      1. bonsoir,

        voici le code à adapter a vos besoins:
        bonne soirée
        <?php //debut
        //recupration de $limite
        if(isset($_GET['limite']))
        $limite=$_GET['limite']; else $limite=0;
        
        function verifLimite($limite,$total,$nombre) {
        // je verifie si limite est un nombre.
        if(is_numeric($limite)) {
        
        // si $limite est entre 0 et $total, $limite est ok
        // sinon $limite n'est pas valide.
        if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
        // j'assigne 1  $valide si $limite est entre 0 et $max
        $valide = 1;
        }
        else {
        // sinon j'assigne 0  $valide
        $valide = 0;
        }
        }
        else {
        // si $limite n'est pas numrique j'assigne 0  $valide
        $valide = 0;
        }
        // je renvois $valide
        return $valide;
        }
        
        function affichePages($nb,$page,$total,$gras) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite = 0;
        echo 'Page :<br />';
        while($numeroPages <= $nbpages) {
        if($gras == $numeroPages) {
        echo $numeroPages ;
        }
        else { 
        // adresse de ton site+ la page qui affiche ses donnees et ?limite= ou &limite (suivant comment fontionne ton site
        echo ' <a href="ADRESSE_DE_TON_SITE/?limite='.$limite.'">'.$numeroPages.' </a> ';
        }
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
        if($compteurPages == 10) {
        $compteurPages = 1;
        echo '<br />'."\n";
        }
        }
        echo '</p>'."\n";
        }
        
        //=========================================
        // information pour la connection  le DB
        //=========================================
        
        
        $base = mysql_connect ('mysql_ou_localhost', 'user', 'mot_de_passe'); 
                   mysql_select_db ('base_sql', $base);
        $table_sql = "nom_de_la_table";
        //=========================================
        // initialisation des variables
        //=========================================
        // on va afficher 3 rsultats par page.
        $nombre = 3;
        // si limite n'existe pas on l'initialise  zro
        if (!$limite) $limite = 0;
        // on cherche le nom de la page.
        $path_parts = pathinfo($_SERVER['PHP_SELF']);
        $page = $path_parts["basename"];
        $gras = ($limite / $nombre)+1;
        //=========================================
        // connection  la DB
        //=========================================
        $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
        mysql_select_db($db) or die ('Erreur :'.mysql_error());
        
        //=========================================
        // requte SQL qui compte le nombre total
        // d'enregistrements dans la table.
        //=========================================
        $select = "SELECT count(*)".$table_sql ;
        $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
        $row = mysql_fetch_row($result);
        $total = $row[0];
        
        //=========================================
        // vrifier la validit de notre variable
        // $limite;
        //=========================================
        $verifLimite= verifLimite($limite,$total,$nombre);
        // si la limite passe n'est pas valide on la remet  zro
        if(!$verifLimite) {
        $limite = 0;
        }
        
        $sql = "SELECT * FROM ".$table_sql." ORDER BY id DESC limit ".$limite.','.$nombre;
        
        // on envoie la requete
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        
        
        // on fait une boucle qui va faire un tour pour chaque enregistrements
        while($donnees = mysql_fetch_array($req))
        {
        // on affiche les informations de l'enregistrements en cours
        echo '<fieldset><legend>'.$donnees['titre'].'</legend><div class="turcoise_gras">Ecrit :' .$donnees['date'] .'</div><div class="rouge"><strong>' .$donnees['message'].'</strong></div><br /><br /><div class="gris">'.$donnees['datemodif'].'</div></fieldset><br /><br />'; 
        }
        
        // on ferme la connexion  mysql
        mysql_close();
        
        
        //=========================================
        // si le nombre d'enregistrement  afficher
        // est plus grand que $nombre
        //=========================================
        if($total > $nombre) {
        // affichage des liens vers les pages
        affichePages($nombre,$page,$total,$gras);
        }
        //fin
        
        ?>