begin process at 2012 05 31 07:03:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme de pagination en php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de pagination en php

mardi 16 août 2011 à 13:15:50 | probleme de pagination en php

zizifolla86

salut je suis débutant en php je trouve un problème lorsque j'ai crée une page pagination qui permet d'afficher les informations dynamique il affiche seulement le premier enregistrement svp aidez moi, et merci en avance. voici le code :
<?php

// Connexion à la base de données

$host = "localhost";
$user = "root";
$pass = "";
$data = "gestion_site"; // Nommer ici la base de données
$connect = mysql_connect($host, $user, $pass)
or die("Connexion au serveur impossible !");
$db = mysql_select_db($data, $connect) or die("Sélection de la base impossible !");


// Paramétrage de la requête (ne pas modifier le nom des variable)
$table = "table_animation"; // Table à sélectionner dans la base
// Champ de la table à afficher pour tester ce script
$titre= "titre";
$description="description";


$sql = "SELECT * FROM $table"; // Requête initiale (à compléter si nécessaire)


$parpage = 1; // Nombre d'enregistrements par page à afficher


// On définit le suffixe du lien url qui affichera les pages
// $_SERVEUR['PHP_SELF'] donne l'arborescence de la page courante
$url = $_SERVER['PHP_SELF'].'?limit=';

$total = mysql_query($sql); // Résultat total de la requête $sql
$nblignes = mysql_num_rows($total); // Nbre total d'enregistrements

// On calcule le nombre de pages à afficher en arrondissant
// le résultat au nombre supérieur grâce à la fonction ceil()
$nbpages = ceil($nblignes/$parpage);


$parpage = 1; // Nombre d'enregistrements par page à afficher

// $_SERVEUR['PHP_SELF'] donne l'arborescence de la page courante
$url = $_SERVER['PHP_SELF'].'?limit=';

$total = mysql_query($sql); // Résultat total de la requête $sql
$nblignes = mysql_num_rows($total); // Nbre total d'enregistrements

// On calcule le nombre de pages à afficher en arrondissant
// le résultat au nombre supérieur grâce à la fonction ceil()
$nbpages = ceil($nblignes/$parpage);

$res = validlimit($nblignes,$parpage,$sql);


$res=mysql_query($sql);
$data=mysql_fetch_array($res);

while($data=mysql_fetch_assoc($res)){
echo '<table><tr>';

echo '<td valign="top"><div class=flach1><h1>'.$data["titre"].'</h1></br>';

echo '<p>'.$data["description"].'</p></div></td>';

echo '<td class="flach2"><img src="images/'.$data["nom_img"].'.png" width="319" height="155" align="top"/>';
echo pagination($url,$parpage,$nblignes,$nbpages);

'</td></tr></table>';
}


mysql_free_result($res); // Libère le résultat de la mémoire



function pagination($url,$parpage,$nblignes,$nbpages)
{
// On crée le code html pour la pagination
$html = precedent($url,$parpage,$nblignes); // On crée le lien precedent
// On vérifie que l'on a plus d'une page à afficher
if ($nbpages > 1) {
// On boucle sur les numéros de pages à afficher
for ($i = 0 ; $i < $nbpages ; ++$i) {
$limit = $i * $parpage; // On calcule le début de la valeur 'limit'
$limit = $limit.",".$parpage; // On fait une concaténation avec $parpage
// On affiche les liens des numéros de pages
$html .= "<a href=".$url.$limit.">".($i + 1)."</a> " ;
}
}
// Si l'on a qu'une page on affiche rien
else {
$html .= "";
}
$html .= suivant($url,$parpage,$nblignes); // On crée le lien suivant
// On retourne le code html
return $html;
}
function validlimit($nblignes,$parpage,$sql)
{
// On vérifie l'existence de la variable $_GET['limit']
// $limit correspond à la clause LIMIT que l'on ajoute à la requête $sql
if (isset($_GET['limit'])) {
$pointer = split('[,]', $_GET['limit']); // On scinde $_GET['limit'] en 2
$debut = $pointer[0];
$fin = $pointer[1];
// On vérifie la conformité de la variable $_GET['limit']
if (($debut >= 0) && ($debut < $nblignes) && ($fin == $parpage)) {
// Si $_GET['limit'] est valide on lance la requête pour afficher la page
$limit = $_GET['limit']; // On récupère la valeur 'limit' passée par url
$sql .= " LIMIT ".$limit.";"; // On ajoute $limit à la requête $sql
$result = mysql_query($sql); // Nouveau résultat de la requête
}
// Sinon on affiche la première page
else {
$sql .= " LIMIT 0,".$parpage.";"; // On ajoute la valeur LIMIT à la requête
$result = mysql_query($sql); // Nouveau résultat de la requête
}
}
// Si la valeur 'limit' n'est pas connue, on affiche la première page
else {
$sql .= " LIMIT 0,".$parpage.";"; // On ajoute la valeur LIMIT à la requête
$result = mysql_query($sql); // Nouveau résultat de la requête
}
// On retourne le résultat de la requête
return $result;
}
function precedent($url,$parpage,$nblignes)
{
// On vérifie qu'il y a au moins 2 pages à afficher
if ($nblignes > $parpage) {
// On vérifie l'existence de la variable $_GET['limit']
if (isset($_GET['limit'])) {
// On scinde la variable 'limit' en utilisant la virgule comme séparateur
$pointer = split('[,]', $_GET['limit']);
// On récupère le nombre avant la virgule et on soustrait la valeur $parpage
$pointer = $pointer[0]-$parpage;
// Si on atteint la première page, pas besoin de lien 'Précédent'
if ($pointer < 0) {
$precedent = "";
}
// Sinon on affiche le lien avec l'url de la page précédente
else {
$limit = "$pointer,$parpage";
$precedent = '<a href="'.$url.$limit.'"><</a> |';
}
}
else {
$precedent = ""; // On est à la première page, pas besoin de lien 'Précédent'
}
}
else {
$precedent = ""; // On a qu'une page, pas besoin de lien 'Précédent'
}
return $precedent;
}
function suivant($url,$parpage,$nblignes)
{
// On vérifie qu'il y a au moins 2 pages à afficher
if ($nblignes > $parpage) {
// On vérifie l'existence de la variable $_GET['limit']
if (isset($_GET['limit'])) {
// On scinde la variable 'limit' en utilisant la virgule comme séparateur
$pointer = split('[,]', $_GET['limit']);
// On récupère le nombre avant la virgule auquel on ajoute la valeur $parpage
$pointer = $pointer[0] + $parpage;
// Si on atteint la dernière page, pas besoin de lien 'Suivant'
if ($pointer >= $nblignes) {
$suivant = "";
}
// Sinon on affiche le lien avec l'url de la page suivante
else {
$limit = "$pointer,$parpage";
$suivant = '<a class="pagination" href="'.$url.$limit.'">></a>|';
}
}
// Si pas de valeur 'limit' on affiche le lien de la deuxième page
if (@$_GET['limit']== false) {
$suivant = '<a href="'.$url.$parpage.','.$parpage.'">></a>|';
}
}
else {
$suivant = ""; // On a qu'une page, pas besoin de lien 'Suivant'
}
return $suivant;
}
// Fin du script
?>


Cette discussion est classée dans : page, get, limit, pointer, parpage


Répondre à ce message

Sujets en rapport avec ce message

probleme pagination variable flash [ par petiteamoula ] saluts'il vous plait j'ai un gros problème.j'ai une animation flash avec laquelle je doit récupéré un variable en php pour l'utiliser dans une requête Présentation d'un catalogue par rubrique et pagination automatique des résultats [ par bocherrot ] bocherrotJe cherche déjà depuis plusieurs semaines le moyen de présenter un catalogue qui possède plusieurs rubriques.A force de m'arracher les cheveu probleme de pagination sous php [ par nenesavoyard ] Bonjour à tousJ'ai récupéré un script de pagination très bien fait sur votre site mais j'ai un soucis.J'ai intégré une page HTML pour le formulaire av pb LIMIT dans requete SQL [ par joebuz ] Bonjour,j'ai un probleme avec l'affichage d'une gallerie photo.j'affiche les miniatures, 24 par pages (6 lignes de 4 photos) avec pagination, ceci fon PSframe et erreur 404 personalisée [ par smoke ] Salut tout le monde ;) J'utilises les pseudo frames pour mon site, voici la structure des include:   if ($_GET['rev'] === 's Get dans une iframe [ par davidcian ] bonjour,Voila mon probleme:"../../modules.php?name=moteur_result?lot=9"ce lien correspond a ma page index qui contient une iframe, Fonction @file_get_contents [ par CrazyShooter ] Bonsoir à tous !Je vais vous énoncer mon problème.J'essaye de récupérer le source d'une page web avec la fonction @file_get_contents($url),où $url = h Comparer une page web a differents moment à file_get_content [ par loupile ] Bonjour, j'essaye d'écrire un petit script tout bête pour regarder les changements opérés sur une page web à des instants differents.Mon idée est donc Protéger un appel de page par la méhode GET [ par zeguizmo ] Salut à tous, Bon le titre est pourri mais je trouvais pas comment dire.La question : quelle est la meilleure méthode pour protéger un appel de page q Problème undefined [ par micky781 ] Bonsoir, voilà je débute en php, j'ai un problème avec le code çi dessous que je n'arrive pas à résoudre ce bout de code marche à part que sur la page


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales