Pagination php

Federer_ -  
Nico_ Messages postés 1219 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

Nico_ Messages postés 1219 Date d'inscription   Statut Membre Dernière intervention   189
 
Bonsoir,

ton formulaire récupère des données dans la base de données ?
bonne soirée
0
Rinkutaicho
 
Oui oui! il recupere des données ds ma BD
0
Rinkutaicho
 
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
0
Nico_ Messages postés 1219 Date d'inscription   Statut Membre Dernière intervention   189
 
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

?>
0