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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de pagination

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de pagination

n°1346602
wydook
Posté le 14-04-2006 à 07:46:55  profilanswer
 

Bonjour à tous.
 
Voici mon problème.
 
Je suis en train de faire un système de pagination.
Le problème est par exemple dans ma base il y a 116 images, je demande à ce qu'il y est 15 images par page, ce qui fait donc 8 pages au total (voir ici http://www.meteo-world.com/webcams/45.php , on constate qu'apres la page 3 il n'y a plus rien)
Moi je voudrais uniquement avoir une certaines catégorie d'image et non pas toutes les images.
Comment faire pour que le système de pagination prenne ceci en compte ?
 
Je veut que seule les images ayant
le champs   departement=aucun    soit affichées, ce qi est le cas, mais le nombre de page prend toutes les images de la base en compte ce qui fait qu'en fait j'ai trop de pages qui s'affichent
 
Voici le code actuel  
 
 

Code :
  1. <?php
  2. mysql_connect('', '', '');  // Connexion à MySQL
  3. mysql_select_db("" ); // Sélection de la base coursphp
  4. $nombreDeMessagesParPage = 15; // Le nombre de news sur chaque page
  5. // On récupère le nombre total de messages
  6. $retour = mysql_query('SELECT COUNT(*) AS nb_ville FROM webcams');
  7. $donnees = mysql_fetch_array($retour);
  8. $totalDesMessages = $donnees['nb_ville'];
  9. // On calcule le nombre de pages à créer
  10. $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
  11. if (isset($_GET['num_page']))
  12. {
  13.     $page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
  14. }
  15. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  16. {
  17.     $page = 1; // On se met sur la page 1 (par défaut)
  18. }
  19. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  20. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  21. $reponse = mysql_query("SELECT id, image, pays, ville, source FROM webcams WHERE departement='aucun' AND approved='YES' ORDER BY id DESC LIMIT  " . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
  22. // Requête SQL
  23. $i = 0;
  24. ?>
  25.     <table>
  26.       <tr>
  27.         <?php
  28. // On fait une boucle pour lister tout ce que contient la table :
  29. while ($data = mysql_fetch_array($reponse) )
  30. {
  31. $i++;
  32. echo '<p id="'.$data['id'].'">';
  33. echo '<td><h3>'.$data['ville'].'<br/>'; //ici on rajoute le "<br/>"
  34. echo '<a href="'.$data['image'].'"><img src="'.$data['image'].'" width="140" height="100" alt="webcam '.$data['ville'].'" border="0" style="filter:alpha(opacity=100); -moz-opacity: 1;" onMouseover="makevisible(this,0)" onMouseout="makevisible(this,1)"></a></h3></td> ';
  35.    if($i == 4)
  36.                         {
  37.                                 echo "</tr><tr>";
  38.                                 $i = 0;
  39.                         }
  40.                 }
  41.                 ?>
  42.       </tr>
  43.     </table>
  44.    Page :
  45.       <?
  46. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  47. {
  48.     echo '<a href="45.php?num_page=' . $i . '">' . $i . '</a> ';
  49. }
  50. ?> <?php
  51. mysql_close(); // Déconnexion de MySQL
  52. ?>


Message édité par wydook le 14-04-2006 à 08:36:30
mood
Publicité
Posté le 14-04-2006 à 07:46:55  profilanswer
 

n°1346642
rufo
Pas me confondre avec Lycos!
Posté le 14-04-2006 à 09:41:01  profilanswer
 

avec Limit, c'est bon. Tu inclus tous les paramètres (conditions) dans ta clause Where de ta requête et tu dois avoir une autre requête qui te renvoie le nb total d'enregistrement (la même requête à quelques détails près sans le limit mais avec un count). A l'affichage, t'as 2 liens précédent et suivant qui ont dans leur url le paramètre "page" qui contient le n° de la page à afficher. Dans le limit de ta requête, tu dois prendre en compte ce paramètre page pour afficher les bons enregistrements.

n°1346843
wydook
Posté le 14-04-2006 à 12:52:42  profilanswer
 

j'ai trouvé la solution à mon problème.
 
Maintenant j'ai un souci.  je ne sait pas comment faire pour inserer "suivant" et précédent".
 
actuellement j'ai ceci:
 
page: 1-2-3-4
 
 
et moi je voudrais
 
Précédent  1-2-3-4  Suivant

n°1346904
rufo
Pas me confondre avec Lycos!
Posté le 14-04-2006 à 14:27:42  profilanswer
 

ben 2 bêtes balises <a href="AfficheTableau.php?Page=i"> où i représente le n° de page à afficher.


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

  Problème de pagination

 

Sujets relatifs
probleme avec substrMysql -> Dom Xml -> Dom Xst -> problème avec les accents
Table problèmeProbleme de sérialisation XML de collection d'objets VB .Net
problème phpmailerProbleme de compilation erreur, aider moi svp
[JavaScript] Problème avec mon Cookie[résolu]Probléme de comparaison de checkbox
[perl embed] Probleme socketProblème de pagination
Plus de sujets relatifs à : Problème de pagination


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