j'ai repris le script pagination j'ai un soucis

Répondre
speedylol
le 01/01/2012 à 20:27
speedylol
je mais une close where avec qui est passé cela me donne rien quelqu'un aurais une idée
  1. <?php
  2. function barre_navigation ($nb_total,
  3. $nb_affichage_par_page,
  4. $debut,
  5. $nb_liens_dans_la_barre) {

  6. $barre = '';

  7. // on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
  8. if ($_SERVER['QUERY_STRING'] == "") {
  9. $query = $_SERVER['PHP_SELF'].'?debut=';
  10. }
  11. else {
  12. $tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
  13. $nb_element = count ($tableau);
  14. if ($nb_element == 1) {
  15. $query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
  16. }
  17. else {
  18. if ($tableau[0] == "") {
  19. $query = $_SERVER['PHP_SELF'].'?debut=';
  20. }
  21. else {
  22. $query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
  23. }
  24. }
  25. }

  26. // on calcul le numéro de la page active
  27. $page_active = floor(($debut/$nb_affichage_par_page)+1);
  28. // on calcul le nombre de pages total que va prendre notre affichage
  29. $nb_pages_total = ceil($nb_total/$nb_affichage_par_page);

  30. // on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
  31. // exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
  32. if ($nb_liens_dans_la_barre%2==0) {
  33. $cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
  34. $cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
  35. }
  36. else {
  37. $cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
  38. $cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
  39. }

  40. if ($cpt_deb1 <= 1) {
  41. $cpt_deb = 1;
  42. $cpt_fin = $nb_liens_dans_la_barre;
  43. }
  44. elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
  45. $cpt_deb = $cpt_deb1;
  46. $cpt_fin = $cpt_fin1;
  47. }
  48. else {
  49. $cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
  50. $cpt_fin = $nb_pages_total;
  51. }

  52. if ($nb_pages_total <= $nb_liens_dans_la_barre) {
  53. $cpt_deb=1;
  54. $cpt_fin=$nb_pages_total;
  55. }

  56. // si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
  57. if ($cpt_deb != 1) {
  58. $cible = $query.(0);
  59. $lien = '<A HREF="'.$cible.'">&lt;&lt;</A>&nbsp;&nbsp;';
  60. }
  61. else {
  62. $lien='';
  63. }
  64. $barre .= $lien;

  65. // on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
  66. for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
  67. if ($cpt == $page_active) {
  68. if ($cpt == $nb_pages_total) {
  69. $barre .= $cpt;
  70. }
  71. else {
  72. $barre .= $cpt.'&nbsp;-&nbsp;';
  73. }
  74. }
  75. else {
  76. if ($cpt == $cpt_fin) {
  77. $barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
  78. $barre .= "'>".$cpt."</A>";
  79. }
  80. else {

  81. $barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
  82. $barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
  83. }
  84. }
  85. }

  86. $fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
  87. if (($nb_total % $nb_affichage_par_page) == 0) {
  88. $fin = $fin - $nb_affichage_par_page;
  89. }

  90. // si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
  91. if ($cpt_fin != $nb_pages_total) {
  92. $cible = $query.$fin;
  93. $lien = '&nbsp;&nbsp;<A HREF="'.$cible.'">&gt;&gt;</A>';
  94. }
  95. else {
  96. $lien='';
  97. }
  98. $barre .= $lien;

  99. return $barre;
  100. }
  101. //finde la fonction paginations
  102. /***********************************************************************************************************************************************/
  103. include("sources/secuk.php");
  104. include("cssstyle/haut.php");


  105. $datejr= date("Y-m-d");
  106. // on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
  107. $sql = 'SELECT count(*) FROM comptes ';

  108. // on exécute cette requête
  109. $resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

  110. // on récupère le nombre d'éléments à afficher
  111. $nb_total = mysql_fetch_array($resultat);

  112. // on teste si ce nombre de vaut pas 0
  113. if (($nb_total = $nb_total[0]) == 0) {
  114. echo 'Aucune réponse trouvée';
  115. }
  116. else {
  117. echo '<table align="center"><tr><td><td>passage des membres</td></tr>';

  118. // sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
  119. if (!isset($_GET['debut'])) $_GET['debut'] = 0;

  120. $nb_affichage_par_page = 10;

  121. // Préparation de la requête avec le LIMIT
  122. $sql = 'SELECT nom, heurepass FROM comptes WHERE quipass='.$datejr.' ORDER BY heurepass ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

  123. // on exécute la requête
  124. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

  125. // on va scanner tous les tuples un par un
  126. while ($data = mysql_fetch_array($req)) {
  127. // on affiches les résultats dans la <table>
  128. echo '<tr><td><td>' , htmlentities(trim($data['nom'])) , '' , htmlentities(trim($data['heurepass'])) , '&nbsp;&nbsp;</td></tr>';
  129. }

  130. // on libère l'espace mémoire alloué pour cette requête
  131. mysql_free_result ($req);
  132. echo '</table><br />';

  133. // on affiche enfin notre barre
  134. echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>';
  135. }
  136. // on libère l'espace mémoire alloué pour cette requête
  137. mysql_free_result ($resultat);
  138. // on ferme la connexion à la base de données.
  139. mysql_close ();
  140. echo '</table><br />';

  141. include("cssstyle/bas.php");
  142. ?>


qui à une idée svp
LupusMic
le 05/01/2012 à 22:23
LupusMic
« Je mets une clause where avec [quoi?] qui est passé [qu'est-ce qui est passé à qui?]. Cela ne me donne rien [qu'attends-tu ?]. Quelqu'un aurait une idée ? ».

J'ai dû relire plusieurs fois pour comprendre partiellement ce que tu voulais dire ><.

Il y a beaucoup de trous de sécurité. Je t'invite à consulter la documentation de htmlentitiesurlrawencode et mysql_real_escape_string. Ensuite, $_SERVER['PHP_SELF'] provient de l'extérieur, l'URL peut être forgée pour détourner ton script.

Pour trouver pourquoi ta requête SQL ne fournit aucun résultat, affiches-là et teste là directement sur ta base de données.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours