Pagination php

Fermé
Federer_ - 24 juil. 2009 à 17:03
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 - 27 juil. 2009 à 18:21
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 vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
24 juil. 2009 à 21:57
Bonsoir,

ton formulaire récupère des données dans la base de données ?
bonne soirée
0
Oui oui! il recupere des données ds ma BD
0
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 vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
27 juil. 2009 à 18:21
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