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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de pagination

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de pagination

n°1865649
Profil sup​primé
Posté le 25-03-2009 à 13:02:14  answer
 

Bonjour  :)  
 
J'ai écris un script php permettant d'afficher une news par page....enfin en théorie, parce qu'en pratique c'est la dernière news qui s'affiche sur toutes mes pages  :sweat:  
ça fait plusieurs jours que je cherche mais en vain. Je pense pas que mon code soit complètement faux mais vas savoir.
 
Voici mon code:

Code :
  1. <?php
  2.    mysql_connect("localhost", "********", "**********" );
  3.    mysql_select_db("**********" );
  4.    
  5.    $nombreDeMessagesParPage = 1;
  6.    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM news');
  7.    $donnees = mysql_fetch_array($retour);
  8.    $nombreDePages = $donnees['nb_messages'];
  9.    
  10.    if(isset($_GET['page']) && is_int($_GET['page']) && $_GET['page'] > 0 &&
  11.    $_GET['page'] < $nombreDePages)
  12.    $Page = $_GET['page'] - 1;
  13.    else
  14.  
  15.    $Page = 0;
  16.  
  17.    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT ' .$Page .', 1');
  18.    while ($donnees = mysql_fetch_array($retour))
  19.    {
  20.        echo
  21.            '</p>
  22.            <div class="news">
  23.            <h3>'. $donnees['titre'].'
  24.            <em>le '.  date('d/m/Y à Hhi', $donnees['timestamp']) .'</em>
  25.            </h3>
  26.            <p>';
  27.        $contenu = nl2br(stripslashes($donnees['contenu']));
  28.        echo $contenu .'</p></div>';
  29.    }
  30.    echo 'Page : ';
  31.    for ($i = 1 ; $i <= $nombreDePages ; $i++)
  32.    {
  33.        echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
  34.    }        
  35.    ?>


Si vous avez une petite idée de ce qui ne vas pas, ça serait sympa de me faire partager vos idées  :)


Message édité par Profil supprimé le 25-03-2009 à 13:13:59
mood
Publicité
Posté le 25-03-2009 à 13:02:14  profilanswer
 

n°1865651
Profil sup​primé
Posté le 25-03-2009 à 13:10:30  answer
 

Bon premièrement, dans ta condition, tu as :

Code :
  1. is_int($_GET['page'])


Or même si $_GET['page'] est un nombre il n'est pas considéré comme de type integer par PHP donc ce test échouera quoi qu'il arrive. Donc $Page vaudra toujours 0.
 
Mais de toute façon : la majeure partie de ton code est inutile.
En effet, tu peux directement utiliser WHERE pour récupérer ta page, sans utiliser COUNT, LIMIT et ORDER BY... :

Code :
  1. SELECT * FROM news WHERE id = $Page


 
Enfin, tu n'échappes pas tes données HTML à la sortie. Si ce n'est pas fait exprès, il y a une faille de sécurité, si ce n'est pas fait exprès, je trouve que c'est une mauvaise idée de htmlspecialchariser les données à l'enregistrement.

n°1865653
Profil sup​primé
Posté le 25-03-2009 à 13:12:28  answer
 

ah et utilise les balises code quand tu postes ([code=php][/code])

n°1865654
Profil sup​primé
Posté le 25-03-2009 à 13:15:10  answer
 

Merci pour les infos et pour les balises  ;)  
 
En fait, le plus gros de mon script a été réalisé grâce au tuto sur le site du zéro. Je maitrise pas encore le php. Donc je vais aller potasser tout ça, je vous tiens au courant  :)

n°1865656
Profil sup​primé
Posté le 25-03-2009 à 13:18:06  answer
 

ouaip, enfin y'a mieux que le SDZ, je te conseille de chercher d'autres tutos (des liens ont déjà été donnés sur le forum, à toi de les retrouver) ;)

n°1865660
Profil sup​primé
Posté le 25-03-2009 à 13:26:54  answer
 

Je me suis dis que c'était déjà un bon début, sachant que j'ai appris le HTML et CSSsur leur site.
Je vais essayer de trouver d'autres exemples de news et re bidouiller mon code.

n°1865663
Profil sup​primé
Posté le 25-03-2009 à 13:32:43  answer
 

oui le HTML et le CSS c'est bon parce que çà ne demande pas beaucoup de rigueur contrairement aux langages de programmation...


Message édité par Profil supprimé le 25-03-2009 à 13:32:51
n°1869794
Profil sup​primé
Posté le 05-04-2009 à 22:17:05  answer
 

Tada ! J'ai réussi mon système de pagination, mon pb maintenant c'est de faire le design. J'ai essayé de mettre des "class" afin de faire un design mais comme c'est dans du php, rien ne marche. Donc je ne vois pas comment faire sur ce coup :/

n°1869867
Profil sup​primé
Posté le 06-04-2009 à 08:15:00  answer
 

[:pingouino]

n°1870165
rufo
Pas me confondre avec Lycos!
Posté le 06-04-2009 à 15:59:12  profilanswer
 

php génère du html (voire du css). Donc je vois pas où est le pb. Il suffit que ta class soit définie dans le css lié à ta page html :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

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

  Problème de pagination

 

Sujets relatifs
Problème du voyageur de commerceProblème saut de ligne dans un textarea
Problème d'include suite à une mise à jour de PHPVersions de compilateur et JRE différentes = problème ?
probleme install sql mod phpbbProblème de const
Problème avec paginationproblème: Pagination moteur de recherche
Problème de paginationProblè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