Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][MySQL][PHP]Paginacja a sortowanie
Forum PHP.pl > Forum > Przedszkole
viamarimar
Z paginacja mam problem od poczatku, niby nic trudnego sa gorsze rzeczy do ktorych sie zabieralem ale ciagle do tego wracam bo jakieś kłopoty z tym są. Mniejsza, przejdzmy do samych problemow.

Troche kodu na poczatek:
  1. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' ){
  2.  
  3. echo'<p><strong>Dla wygody korzystaj z wyszukiwarki:</strong> <form class="navbar-form" action="admin.php" method="post" role="search">
  4. <input type="hidden" name="s" value="wyszukiwarka_user">
  5. <div class="input-group custom-search-form">
  6. <input type="text" class="form-control" placeholder="Login lub litera..." name="phrase">
  7. <div class="input-group-btn">
  8. <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
  9. </div>
  10. </div>
  11. </form></p>';
  12.  
  13.  
  14. $query = "SELECT COUNT(*) as all_posts FROM users";
  15. $result = mysql_query($query) or die (mysql_error());
  16. $row = mysql_fetch_array($result);
  17. extract($row);
  18.  
  19. $onpage = 5;
  20. $navnum = 7;
  21. $allpages = ceil($all_posts/$onpage);
  22.  
  23. if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
  24. $page = 1;
  25. }else{
  26. $page = $_GET['page'];
  27. }
  28. $limit = ($page - 1) * $onpage;
  29.  
  30. $query = "SELECT * FROM users ORDER BY login ASC LIMIT $limit, $onpage";
  31.  
  32. #obsluga sortowania
  33. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salfl' ){
  34. $query = "SELECT * FROM users ORDER BY login ASC LIMIT $limit, $onpage";
  35. }
  36. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salfi' ){
  37. $query = "SELECT * FROM users ORDER BY imie ASC LIMIT $limit, $onpage";
  38. }
  39. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salfn' ){
  40. $query = "SELECT * FROM users ORDER BY nazwisko ASC LIMIT $limit, $onpage";
  41. }
  42. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salfr' ){
  43. $query = "SELECT * FROM users ORDER BY rank DESC LIMIT $limit, $onpage";
  44. }
  45. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salfip' ){
  46. $query = "SELECT * FROM users ORDER BY ip ASC LIMIT $limit, $onpage";
  47. }
  48. if(isset($_GET['s']) && $_GET['s']=='user' && isset($_GET['a']) && $_GET['a']=='wys' && isset($_GET['c']) && $_GET['c']=='salflog' ){
  49. $query = "SELECT * FROM users ORDER BY logowanie DESC LIMIT $limit, $onpage";
  50. }
  51. #koniec sortowania
  52.  
  53.  
  54. #echo $query;
  55. $result = mysql_query($query) or die (mysql_error());
  56.  
  57. if(mysql_num_rows($result) > 0) {
  58. /* jeśli zap jest pozytywny, to wyświetlamy dane */
  59. echo '<div class="table-responsive"><table class="table table-hover ">';
  60. echo"<tr><thead>";
  61. echo"<th>ID</th>";
  62. echo'<th>LOGIN <a href="admin.php?s=user&a=wys&c=salfl" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  63. echo'<th>IMIE <a href="admin.php?s=user&a=wys&c=salfi" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  64. echo'<th>NAZWISKO <a href="admin.php?s=user&a=wys&c=salfi" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  65. echo'<th>IP <a href="admin.php?s=user&a=wys&c=salfip" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  66. echo'<th>LOGOWANIE <a href="admin.php?s=user&a=wys&c=salflog" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  67. echo'<th>RANK <a href="admin.php?s=user&a=wys&c=salfr" ><img src="images/sort-icon.png" alt="sort" /></a></th>';
  68. echo'<th>&nbsp;</th>';
  69. echo"<th>&nbsp;</th>";
  70. echo"<th>&nbsp;</th>";
  71. echo"<th>&nbsp;</th>";
  72. echo"</thead></tr>";
  73.  
  74. while($r = mysql_fetch_assoc($result)) {
  75. echo "<tr>";
  76. echo"<td>".$r['id']."</td>";
  77. echo"<td>".$r['login']."</td>";
  78. echo"<td>".$r['imie']."</td>";
  79. echo"<td>".$r['nazwisko']."</td>";
  80. echo"<td>".$r['ip']."</td>";
  81. echo"<td>".$r['logowanie']."</td>";
  82. if($r['rank'] =='root'){
  83. echo'<td><img src="images/rank/root-icon.png" alt="image/gif" /></td>';
  84. }
  85. else if($r['rank'] =='mod'){
  86. echo'<td><img src="images/rank/mod-icon.png" alt="image/gif" /></td>';
  87. }
  88. else if($r['rank'] =='user'){
  89. echo'<td><img src="images/rank/user-icon.png" alt="image/gif" /></td>';
  90. }
  91. else{
  92. echo'<td><img src="images/rank/other-icon.png" alt="image/gif" /></td>';
  93. }
  94.  
  95. if ($r['aktywny']=='0'){
  96. echo'<td><a href="admin.php?s=user&a=akt&id='.$r['id'].'" onclick="return confirm(\'Czy na pewno aktywować to konto?\')" ><img src="images/nie.png" alt="0" /></a></td>';
  97. }
  98. if ($r['aktywny']=='1'){
  99. echo'<td><a href="admin.php?s=user&a=dezakt&id='.$r['id'].'" onclick="return confirm(\'Czy na pewno dezaktywować to konto?\')" ><img src="images/tak.png" alt="1" /></a></td>';
  100. }
  101. echo'<td><a href="admin.php?s=user&a=odz&id='.$r['id'].'" ><img src="images/keys-icon.png" alt="Hasło" /></a></td>';
  102.  
  103. echo'<td><a href="admin.php?s=user&a=edytuj&id='.$r['id'].'" ><img src="images/edytuj.jpg" alt="Edytuj" /></a></td>';
  104. echo'<td><a href="admin.php?s=user&a=usun&id='.$r['id'].'" onclick="return confirm(\'Czy na pewno usunąć?\')" ><img src="images/kosz.png" alt="Usuń" /></a></td>';
  105. echo "</tr>";
  106. }
  107. echo "</table></div>";
  108. }
  109.  
  110.  
  111.  
  112.  
  113. if($navnum > $allpages){
  114. $navnum = $allpages;
  115. }
  116.  
  117. $forstart = $page - floor($navnum/2);
  118. $forend = $forstart + $navnum;
  119.  
  120. if($forstart <= 0){ $forstart = 1; }
  121.  
  122. $overend = $allpages - $forend;
  123.  
  124. if($overend < 0){ $forstart = $forstart + $overend + 1; }
  125.  
  126. $forend = $forstart + $navnum;
  127.  
  128. $prev = $page - 1;
  129. $next = $page + 1;
  130.  
  131. $script_name = $_SERVER['SCRIPT_NAME'];
  132.  
  133. #nie wyswietlanie paginacji jak jest mniej niz 5
  134. $zap2 = mysql_query("SELECT * FROM users ") or die (mysql_error());
  135. $ile2 = mysql_num_rows($zap2);
  136.  
  137. if($rank['rank'] == 'root'){
  138. if($ile2<=0){ info('Brak użytkowników...');} #troche gupie?biggrin.gif komu chcesz to pokazac?haha.gif
  139. if($ile2<=5){}
  140. else{
  141. echo '<div class="row"><ul class="pagination">';
  142. if($page > 1) echo "<li><a href=\"".$script_name."?s=user&a=wys&amp;page=".$prev."\">Poprzednia</a></li>";
  143. if ($forstart > 1) echo "<li><a href=\"".$script_name."?s=user&a=wys&amp;page=?page=1\">[1]</a></li>";
  144. if ($forstart > 2) echo "<li>...</li>";
  145. for($forstart; $forstart < $forend; $forstart++){
  146. if($forstart == $page){
  147. echo "<li class=\"current\">";
  148. }else{
  149. echo "<li>";
  150. }
  151. echo "<a href=\"".$script_name."?s=user&a=wys&amp;page=".$forstart."\">[".$forstart."]</a></li>";
  152. }
  153. if($forstart < $allpages) echo "<li>...</li>";
  154. if($forstart - 1 < $allpages) echo "<li><a href=\"".$script_name."?s=user&a=wys&amp;page=".$allpages."\">[".$allpages."]</a></li>";
  155. if($page < $allpages) echo "<li><a href=\"".$script_name."?s=user&a=wys&amp;page=".$next."\">Następna</a></li>";
  156. echo "</ul></div>";
  157. }
  158. }
  159.  
  160.  
  161.  
  162.  
  163. }



Pierwszy problem jest samego wyswietlania, tzn paginacja sie wyswietla ale przy wiekszej ilosci rekordow jest cos takiego:

[1][2][3][4][5][6][7][8][12]...

Na moje oko to powinno byc ze te kropki sa:

[1][2][3][4][5][6][7][8]...[12]

Co do problemu numer dwa

Dolzylem dzis sortowanie cos banalnego
Sortowanie dziala no ale posortuje a jak przechodze na kolejna strone znow nie jest posortowane, druga trzecia czwarta itd strona nigdy nie beda postortowane.

Jak to poprawic?

Informacja ogolna. Ponieważ nie wiedziałem jak napisać paginacje wyszukałem ją w necie i modyfikuje ją pod siebie, ale te modyfikacje wychodzą mi jak wychodzą.

Tyle było by miło jakby ktoś w to zajrzał i powiedzał co może być nie tak.
ctom
czy nie myślisz, że wynik jaki chcesz osiągnąć w liniach 134-135 masz już w linii 14 ?
marian84
Zerknij na ten paginator:
http://nospor.pl/pager.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.