Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2087 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Pagination

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pagination

n°1139561
snarky
Posté le 04-07-2005 à 16:51:04  profilanswer
 

Je viens de finir mon script de pagination permettant d'etaler mes résultats sur plusieurs pages, en fonction du nombre maxi de résultats par page ($numNews).
 
Le script marche parfaitement mais j'aimerai tout de même avoir quelques avis pour savoir si il  est possible de simplifier la chose.  :jap:
 
En voici la source

Code :
  1. <?php
  2. include('./includes/sql.php');
  3. $numNews = 5; // Nombre de news à afficher
  4. $requete = mysql_unbuffered_query("SELECT COUNT(id_article) FROM Articles" ) or die("Echec lors de l'envoi de $requete" );
  5. $numRows = mysql_fetch_row($requete); // Calcul du nombre de news total sous forme de tableau
  6. $numPages = ceil($numRows[0] / $numNews); // Calcul du nombre de pages total
  7. // on genere les requetes pour afficher les pages précedentes et suivantes
  8. if(!isset($_GET['num']) or !is_numeric($_GET['num']))
  9. {
  10. $page = 1;
  11. $position = 0;
  12. }
  13. else
  14. {
  15. $page = $_GET['num'] + 1;
  16. $position = $numNews * ($page - 1);
  17. }
  18. if($page != $numPages) // Si il y a encore des pages apres cette page on affiche le bouton Suivant
  19. {
  20. $next = '<a href="pagination.php?num='.$page.'">Suivant</a>';
  21. }
  22. else //sinon on affiche "Suivant"  
  23. {
  24. $next = 'Suivant';
  25. }
  26. if($page != 1) // Si il y a des pages avant cette page on affiche le bouton Précedent
  27. {
  28. $prec = '<a href="pagination.php?num='.($page - 2).'">Précedent</a>';
  29. }
  30. else // sinon on affiche "Précedent"
  31. {
  32. $prec = 'Précedent';
  33. }
  34. if($numPages > 1) // Si il y a plusieurs pages on affiche la barre de pagination
  35. {
  36. $pagination = "$prec - $next";
  37. }
  38. else // Si il n'y a qu'une page, on affiche rien
  39. {
  40. $pagination = '';
  41. }
  42. $requete_article = mysql_query("SELECT title_article FROM Articles ORDER BY time_article AND date_article DESC LIMIT $position, $numNews" ) or die("echec de la requ&ecirc;te MYSQL" );
  43. while($article = mysql_fetch_array($requete_article))
  44. {
  45. //Affichage le titre des articles
  46. echo'<h2>',$article['title_article'],'</h2>';
  47. }
  48. echo $pagination;
  49. ?>


 
le résultat est visible a l'adresse suivante : pagination


Message édité par snarky le 04-07-2005 à 18:02:05
mood
Publicité
Posté le 04-07-2005 à 16:51:04  profilanswer
 

n°1139611
masklinn
í dag viðrar vel til loftárása
Posté le 04-07-2005 à 17:45:26  profilanswer
 

On sait pas à quelle page on est exactement :o
Faudrait un accès direct à un minimum de pages :o
Puis c'est confusionant de continuer d'afficher le texte alors qu'il n'est plus cliquable :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1139621
snarky
Posté le 04-07-2005 à 17:58:02  profilanswer
 

hmm oui la navigation reste a amelioré. mais que pensé du code en lui même  ?

n°1139623
denzz
huhuuuuu ! (désolé )
Posté le 04-07-2005 à 18:00:09  profilanswer
 

Citation :


"Echec lorsque de l'envoi de $requete"


 
...

n°1139628
snarky
Posté le 04-07-2005 à 18:01:35  profilanswer
 

en effet :whistle:

n°1139629
Paracetamo​l
Posté le 04-07-2005 à 18:04:33  profilanswer
 

Lis bien cette page, en entier, puis affiche la correction, je pense que ça va t'aider quand il parle de la pagination.
http://www.siteduzero.com/php/tp/livreor.php

n°1139630
snarky
Posté le 04-07-2005 à 18:05:40  profilanswer
 

Paracetamol a écrit :

Lis bien cette page, en entier, puis affiche la correction, je pense que ça va t'aider quand il parle de la pagination.
http://www.siteduzero.com/php/tp/livreor.php


 
sympa d'la lecture pour avant de :sleep:

n°1139669
Paracetamo​l
Posté le 04-07-2005 à 18:36:30  profilanswer
 

Alors, tu as vu l'histoire de pagination ?

n°1139671
snarky
Posté le 04-07-2005 à 18:45:12  profilanswer
 

Code :
  1. <?php
  2. include('./includes/sql.php');
  3. $numNews = 5; // "Variable a mettre dans config" - Nombre de news a afficher
  4. $requete = mysql_unbuffered_query("SELECT COUNT(id_article) FROM Articles" ) or die('Echec lors de l\envoi de $requete');
  5. $numRows = mysql_fetch_row($requete); // Calcul du nombre de news total sous forme de tableau
  6. $numPages = ceil($numRows[0] / $numNews); // Calcul du nombre de pages total
  7. //Recuperation du numero de la page
  8. if(!isset($_GET['page']) or !is_numeric($_GET['page'])) // si ?page= n'a pas de valeur alors on est en premiere page
  9. {
  10. $page = 1;
  11. $position = 0;
  12. }
  13. else // sinon on recupere le numero de la page a afficher
  14. {
  15. $page = $_GET['page'];
  16. $position = $numNews * ($page - 1);
  17. }
  18. $requete = mysql_query("SELECT id_article, author_article, text_article, date_article, time_article FROM Articles ORDER BY id_article DESC LIMIT $position, $numNews" ) or die("echec de la requete" );
  19. while($comment = mysql_fetch_array($requete))
  20. {
  21.  //Formatage de la date Jour %A %d %B %Y
  22.  list($year, $month, $day) = explode("-", $comment['date_article']);
  23.  $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" );
  24.  $days = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" );
  25.  $timestamp = mktime (0, 0, 0, $month, $day, $year);
  26.  //formatage BBcode
  27.  $text = $comment['text_article'];
  28.  require('./includes/bbcode.php');
  29.  //Affichage des commentaires      
  30.  echo'<div id="comments">
  31.    <h2>',$comment['id_article'], ' | ', $comment['author_article'] ,'</h2>
  32.    <div class="message"><span class="justify">', $text ,'</span></div>
  33.    <h3>Post&eacute; le ', $days[date("w",$timestamp)], ' ', $day ,' ', $months[$month-1] ,' ', $year , ' &agrave; ', $comment['time_article'] ,'.</h3>
  34.   </div>';
  35. }
  36. mysql_close();
  37. //Pagination
  38. for($i = 1; $i <= $numPages; $i++)
  39. {
  40. echo '<a href="index.php?page=',$i,'">',$i,'</a>';
  41. }
  42. ?>


 
http://sn4rky.free.fr/guestbook/index.php


Message édité par snarky le 04-07-2005 à 18:46:02
n°1192881
bourin77
Posté le 05-09-2005 à 22:17:18  profilanswer
 

salut snarky,
je me suis servi de ton script et enfin compris comment faire une pagination lol..... Par contre, personel, j'ai un souci car pour moi je récupere une variable:
  $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  pour l'instant OK, apres je modifie donc ta requete avec le WHERE :
WHERE photosponsor.sponsor= "' . $id . '" pour le select
Par contre, j'ai un probleme et m'affiche 'echec de la requete' pourtant j'ai l'impression que c bon.
Mes 2 requetes:
- 'SELECT COUNT(*) FROM photosponsor WHERE photosponsor.sponsor= "' . $id . '"'
- 'SELECT * FROM photosponsor WHERE photospnsor.sponsor=\"' . $id . '\" LIMIT $position, $numNews'
E mo lien <a class="tahoma12" href="?VARsponsor=',$id,'&page=',$i,'">',$i,'&nbsp;&nbsp;</a>
 
As tu une idée ?
Bonne soirée à tous
 

mood
Publicité
Posté le 05-09-2005 à 22:17:18  profilanswer
 

n°1192908
sielfried
Posté le 05-09-2005 à 23:03:48  profilanswer
 

$sql = 'select ...';
echo $sql;


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1192915
snarky
Posté le 05-09-2005 à 23:22:19  profilanswer
 

bourin77 a écrit :

salut snarky,
je me suis servi de ton script et enfin compris comment faire une pagination lol..... Par contre, personel, j'ai un souci car pour moi je récupere une variable:
  $id = isset($_GET['VARsponsorID']) ? $_GET['VARsponsorID'] : die('Erreur');  pour l'instant OK, apres je modifie donc ta requete avec le WHERE :
WHERE photosponsor.sponsor= "' . $id . '" pour le select
Par contre, j'ai un probleme et m'affiche 'echec de la requete' pourtant j'ai l'impression que c bon.
Mes 2 requetes:
- 'SELECT COUNT(*) FROM photosponsor WHERE photosponsor.sponsor= "' . $id . '"'
- 'SELECT * FROM photosponsor WHERE photospnsor.sponsor=\"' . $id . '\" LIMIT $position, $numNews'
E mo lien <a class="tahoma12" href="?VARsponsor=',$id,'&page=',$i,'">',$i,'&nbsp;&nbsp;</a>
 
As tu une idée ?
Bonne soirée à tous


 
 
$req = sprintf("SELECT * FROM photosponsor WHERE photospnsor.sponsor='%s' LIMIT $position, $numNews", mysql_real_escape_string($id));
 
$requete = mysql_query($req);
 
:jap:

n°1193054
Berceker U​nited
PSN : berceker_united
Posté le 06-09-2005 à 10:39:02  profilanswer
 

Des fois je me demande a quoi ça sert d'avoir la fonction recherche sur ce forum ! j'avais fais un topic ou j'en propose une complète. :/
Et pas de mensonge parce qu'il y en a des réponse  :sarcastic:  
http://forum.hardware.fr/forum1.ph [...] deration=0


Message édité par Berceker United le 06-09-2005 à 10:40:35
n°1193144
bourin77
Posté le 06-09-2005 à 12:58:39  profilanswer
 

desolé je 'ai vu apres mon post
merci @ vous


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Pagination

 

Sujets relatifs
Finitions de mon livre d'or (pagination + date)JSP Pagination
Pagination JSP[ASP.NET] DataGrid et Pagination
Problèmes avec 2 macros pour pagination - VBScript, ASPXSQL pages et la pagination.
Problème de paginationpagination : méthode la plus performante ?
Faire une pagination identique à ce forum... 
Plus de sujets relatifs à : Pagination


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR