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

  FORUM HardWare.fr
  Programmation
  PHP

  gestion d'affichage par page...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gestion d'affichage par page...

n°810817
albator-hc
Posté le 30-07-2004 à 10:32:05  profilanswer
 

Bonjour a vous.
 
je suis en train de faire un script de gestion d'article avec une base SQL a 4 champs (ID ,date, Titre , Articles)
 
cependant, il maffiche tout les articles Dans une page entiere. moi je voudrai qu'au bout d'un certain nombre de caractere il puisse segmenter en plusieur page et gardr cette ordre de page.
 
Vla le code...
 
 

Code :
  1. <style type="text/css">
  2. <!--
  3. body {
  4. background-image: url(bg.jpg);
  5. }
  6. -->
  7. </style><body>
  8. <HTML>
  9. <style type="text/css">
  10. <!--
  11. .Style1 {
  12. font-size: 14px;
  13. font-family: Verdana, Arial, Helvetica, sans-serif;
  14. color: #FF9900;
  15. }
  16. -->
  17. </style>
  18. <link href="catalog/stylesheet.css" rel="stylesheet" type="text/css">
  19. <blockquote><span class="Style1"><strong>Actualités</strong></span></blockquote>
  20. <?php
  21. //bare des articles
  22. include("../admin_site/config.php" );
  23. $connection= mysql_connect($host_db,$user_db,$password_db,$bdd_db);
  24. $db=mysql_select_db($bdd_db,$connection);
  25. $sql = "SELECT * FROM articles ORDER by id DESC";
  26. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  27. while ($data = mysql_fetch_array($req)) {
  28. $id = $data['id'];
  29. $titre = $data['titre'];
  30. $texte = $data['texte'];
  31. $date = $data['date'];
  32. echo $date.' <A HREF=affarticles.php?sid='.$id.'>'.$titre.' </div>';
  33. }
  34. mysql_free_result ($req);
  35. mysql_close ();
  36. ?>
  37. </tr>
  38. </body>
  39. </HTML>


---------------
p4w4
mood
Publicité
Posté le 30-07-2004 à 10:32:05  profilanswer
 

n°810904
Jayles
Posté le 30-07-2004 à 11:22:56  profilanswer
 

Ce que je ferais :
 
- récupérer le nombre d'entrée et le diviser par le nombre d'article que tu veux par page
- afficher, comme pour le forum un lien vers chaque page (en fait c la même page biensur, mais tu récupère le numéro en GET par exemple)
- faire la requete dans la base en fonction de ce nombre :
 - par défaut tu affiche les x premier articles
 - si la page y est sélectionnée, tu affiche de l'article y*x à l'article y*x + x

n°810926
fb@alphalo​g
Posté le 30-07-2004 à 11:33:27  profilanswer
 

personnelement , je ferai plutot :
$query = "SELECT * FROM articles ORDER by id DESC LIMIT $inf,$sup"  
avec $inf et $sup deux variables passés soit par l'url ( ( et $_GET ) , soit par un formulaire ( $_POST )
 
tes requetes seront moins lourdes  

n°810940
Jayles
Posté le 30-07-2004 à 11:38:17  profilanswer
 

Oui oui,
 
c'est ce que je fais en calculant la born inf et la born sup en fonction de mon numéro de page.

n°810958
fb@alphalo​g
Posté le 30-07-2004 à 11:43:15  profilanswer
 

ok  , j'avais pas compris :jap:


Message édité par fb@alphalog le 30-07-2004 à 11:43:21
n°811001
Jayles
Posté le 30-07-2004 à 12:07:46  profilanswer
 

C'est ma faute quand je vois comment je me suis exprimé. Je la refais, moins crispé :
 
soit X le nb d'articles par page
soit Y le numéro de la page a afficher
 
- le nb total de page s'obtient en divisant (merci euclide) le nb total d'articles par X auquel on ajoute 1 si la division ne tombe pas juste
- avec la page à afficher (Y) on calcul les bornes pour la requète. On affiche les articles de Y*X à Y*X+X (et on a donc X articles sur notre page). Par défaut, on affiche les X premiers artcles (page 1). Attention pour la dernière page qui comporte probablement moins de X articles ;)
 
C'est simple et je pense assez efficace, du moment que tu stocke ton nombre d'articles (pour ne pas faire une requète pour calculer le nombre d'entrées à chaque fois)

n°811201
albator-hc
Posté le 30-07-2004 à 14:50:14  profilanswer
 

En fait jai pas de pb dfe gestion des articles.
 
je veut juste qu'un article qui soit trop long puisse se diiviser en plusieur page et c'zest ca que jarrive pas a faire.
 
 
si vous avez une idee...
 

n°811209
Jayles
Posté le 30-07-2004 à 14:54:30  profilanswer
 

Ah oki ! j'avais pas compris.
 
Bah, pourquoi tu veux qu'il soit sur plusieurs pages ? c pour l'imprimer ? sinon c'est plus facile de dérouler.
 
Enfin sinon, moi j'appliquerai le même principe sur la longueur du texte, à la différence près qu'au moment ou tu coupes, tu coupes pas au milieu d'un mot (normal)

n°811217
albator-hc
Posté le 30-07-2004 à 14:56:36  profilanswer
 

ouais mais c quoi la fonction pour decoupper, et surtout comment la mettre en place dans ma page???


---------------
p4w4
n°811250
Jayles
Posté le 30-07-2004 à 15:19:46  profilanswer
 

J'y ai jamais réfléchis.
utilises les fonctions de manipulation de chaines de caractères qui vont bien.
 
sans y réfléchir, j'aurais le réflexe de faire de la façon suivante :
- je calcul un nombre moyen de caractères par page
- dans une variable, je met le texte en commençant au caractère 0 et en allant jusqu'au ième caractère (i caractères en moyenne par page)
- en suite, je récupère l'emplacement du dernier espace de cette nouvelle chaine
- dans la nouvelle variable, je supprime tout de cet emplacement du dernier caractère jusqu'à la fin (je supprime donc l'éventuel mot qui est tronqué) et je l'affiche (j'ai une première page).
- dans mon texte d'origine je supprime tout ce qui est avant cet espace (et je garde ainsi le reste du texte qui n'a pas encore été affiché)
- je recommence sur le reste du texte, jusqu'à arriver au bout

mood
Publicité
Posté le 30-07-2004 à 15:19:46  profilanswer
 

n°811261
Jayles
Posté le 30-07-2004 à 15:25:23  profilanswer
 

pour les fonctions regarde l'aide de :
 
strripos()
substr()
strlen()
 
et plein d'autres
 
on trouve souvent facilement dans l'aide surtout que la documentation sur le php est bien faite

n°811284
albator-hc
Posté le 30-07-2004 à 15:39:03  profilanswer
 

ouais
 
jvai voir mais si ta un peu code tout fait ca mavancerai bien
 
merci deja...§!!

n°811450
albator-hc
Posté le 30-07-2004 à 17:23:26  profilanswer
 

bon jai deja chier ca :
 

Code :
  1. //definition des pages
  2. $page1 = substr("$texte", 0, 200);
  3. $page2 = substr("$texte", 200, 400);
  4. $page3 = substr("$texte", 400, 600);
  5. $page4 = substr("$texte", 600, 800);
  6. $page5 = substr("$texte", 1000, 1200);
  7. $page6 = substr("$texte", 1200, 1400);
  8. $page7 = substr("$texte", 1400, 1600);
  9. $page8 = substr("$texte", 1600, 1800);
  10. $page9 = substr("$texte", 1800, 2000);
  11. $page10 = substr("$texte", 2000, 2200);
  12. $page11 = substr("$texte", 2200, 2400);
  13. $page12 = substr("$texte", 2400, 2600);
  14. $page13 = substr("$texte", 2600, 2800);
  15. $page14 = substr("$texte", 2800, 3000);
  16. $page15 = substr("$texte", 3000, 3200);
  17. $page16 = substr("$texte", 3200, 3400);
  18. $page17 = substr("$texte", 3400, 3600);
  19. $page18 = substr("$texte", 3600, 3800);
  20. $page19 = substr("$texte", 3800, 4000);
  21. $page20 = substr("$texte", 4000, 4200);
  22. $page21 = substr("$texte", 4200, 4400);
  23. $page22 = substr("$texte", 4400, 4600);
  24. $page23 = substr("$texte", 4600, 4800);
  25. $page24 = substr("$texte", 4800, 5000);
  26. $page25 = substr("$texte", 5000, 5200);
  27. //affichage
  28. $numpage=$_GET['numpage'];
  29. if ($numpage==1)
  30. {
  31. echo $page1;
  32. }
  33. if ($numpage==2)
  34. {
  35. echo $page2;
  36. }
  37. if ($numpage==3)
  38. {
  39. echo $page3;
  40. }
  41. if ($numpage==4)
  42. {
  43. echo $page4;
  44. }
  45. if ($numpage==5)
  46. {
  47. echo $page5;
  48. }
  49. if ($numpage==6)
  50. {
  51. echo $page6;
  52. }
  53. if ($numpage==7)
  54. {
  55. echo $page7;
  56. }
  57. if ($numpage==8)
  58. {
  59. echo $page8;
  60. }
  61. if ($numpage==9)
  62. {
  63. echo $page9;
  64. }
  65. if ($numpage==10)
  66. {
  67. echo $page10;
  68. }
  69. if ($numpage==11)
  70. {
  71. echo $page11;
  72. }
  73. if ($numpage==12)
  74. {
  75. echo $page12;
  76. }
  77. if ($numpage==13)
  78. {
  79. echo $page13;
  80. }
  81. if ($numpage==14)
  82. {
  83. echo $page14;
  84. }
  85. if ($numpage==15)
  86. {
  87. echo $page15;
  88. }
  89. if ($numpage==16)
  90. {
  91. echo $page16;
  92. }
  93. if ($numpage==17)
  94. {
  95. echo $page17;
  96. }
  97. if ($numpage==18)
  98. {
  99. echo $page18;
  100. }
  101. if ($numpage==19)
  102. {
  103. echo $page19;
  104. }
  105. if ($numpage==20)
  106. {
  107. echo $page20;
  108. }
  109. if ($numpage==21)
  110. {
  111. echo $page21;
  112. }
  113. if ($numpage==22)
  114. {
  115. echo $page22;
  116. }
  117. if ($numpage==23)
  118. {
  119. echo $page23;
  120. }
  121. if ($numpage==24)
  122. {
  123. echo $page24;
  124. }
  125. if ($numpage==25)
  126. {
  127. echo $page25;
  128. }
  129.     //recup idmax
  130. $result = mysql_query("SELECT * FROM articles ORDER BY id DESC LIMIT 0,1" );
  131. $req2 = mysql_fetch_array($result);
  132. $idmax = $req2["id"];
  133. //condition idmax
  134. if ($id==$idmax)
  135. {
  136. echo "<ol><A HREF=articles.php>Retour au sommaire<ol>";
  137. }
  138. else
  139. {
  140. echo '<ol><A HREF=affarticles.php?sid='.$idma.'>articles suivante</ol>';
  141. }
  142. //recup idmin
  143. $result2 = mysql_query("SELECT * FROM articles ORDER BY id ASC LIMIT 0,1" );
  144. $req3 = mysql_fetch_array($result2);
  145. $idmin = $req3["id"];
  146. //condition idmin
  147. if ($id==$idmin)
  148. {
  149. echo "<ol><A HREF=articles.php>Retour au sommaire<ol>";
  150. }
  151. else
  152. {
  153. echo '<ol><A HREF=affarticles.php?sid='.$idmi.'>Brève précédente</ol>';
  154. }
  155. }
  156. $numpagep=$numpage+1;
  157. $numpagem=$numpage-1;
  158. echo '<ol><A HREF=affarticles.php?sid='.$id.'&numpage='.$numpagem.'>page précédente</ol>';
  159. echo '<ol><A HREF=affarticles.php?sid='.$id.'&numpage='.$numpagep.'>page suivante</ol>';


 
par contre comme tu ma dit il coupe des mot en deux et jai l'impression qu'il en opublie quelque un en route.
 
ta une idee?

n°811485
Jayles
Posté le 30-07-2004 à 18:15:18  profilanswer
 

Citation :

jvai voir mais si ta un peu code tout fait ca mavancerai bien  


 
mais le plus rigolo c'est de le faire toi même ! En plus tu sais on a tous des trucs à faire ;) !
 
bon petites indications :
 - essaye de gérer automatiquement la découpe de tes pages. T'imagines si tu as 1000 pages à afficher, comment tu vas faire ?
 - pour la découpe des mots, je t'ai donné la solution : strripos() te permettra de trouver l'emplacement du dernier espace par exemple. Te reste plus qu'à supprimer ce qu'il y a après, mais faut bien sur le mettre dans la page suivante, c'est pour ça que c'est pas bon de tout découper comme ça. Essayes de suivre les étapes que je t'ai donné.
 
En tout cas il n'existe pas une seule solution, tu en trouveras peut-être une plus efficace.
 
amuses toi bien


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

  gestion d'affichage par page...

 

Sujets relatifs
Page non redimenssionableCopie d'une page internet sur Excel
comment actualiser une page en ASP?[CVS] & [WSAD 5] Gestion des branches : des problèmes
Exécuter une partie de code sur une même page en utilisant un boutonPreloader avec affichage du temps restant
Comment imprimer une page sans le header ni le footer?Intégration dans une page web/incompatibilité Gecko et classid?
Besoin d'aide en JSP concernant l'affichage[assembleur] Gestion postion souris + Affichage [Need Help] -> Page 2
Plus de sujets relatifs à : gestion d'affichage par page...


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