Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Stronicowanie
Forum PHP.pl > Forum > Przedszkole
djgarsi
Witam. Mam już kod stronicowania rekordów z bazy. Jednak przy dużej ilości rekordów lista stron się zawija do nowego wiersza.
Chciałbym tego uniknąć. Chodzi mi o rozwiązanie typu
Strony: 1 2 3 4 5 6 ... 15 16 17 18 >>

Oto mój kod:
  1. <?php
  2. define('ILOSC_WYNIKOW_NA_STRONIE', 60);
  3.  
  4. $Query_naj = "SELECT COUNT(*) FROM file WHERE cat='1'and active='1'";
  5. $result_naj = mysql_query($Query_naj) or die (mysql_error());
  6. list($iloscWpisow) = mysql_fetch_row($result_naj);
  7.  
  8. $Query_naj = "SELECT * FROM file WHERE cat='1' and active='1' ORDER BY id DESC LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  9. $result_naj = mysql_query($Query_naj) or die (mysql_error());
  10. while($row_naj = mysql_fetch_assoc($result_naj)){
  11.  
  12. echo '<b><a href=mp3/'.$row_naj['id'].'/'.namen($row_naj['name']).'.html>['.$row_naj['data'].'] '.$row_naj['name'].'</a></b><br>';
  13. echo 'Godzina: '.$row_naj['data_rss'].' | Serwer: '.$row_naj['licencja'].' | Pobran: '.$row_naj['pobran'].' | '.$row_naj['opis'].'<br /><br />';
  14. }
  15. echo '<hr><center>';
  16.  
  17. if($_GET['strona']>0){
  18. echo '<a href="?strona='.($_GET['strona']-1).'">&laquo; Poprzednie</a> ';
  19. }
  20.  
  21. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  22. echo '<a href="?strona='.($i).'"><b> '.($i+1).' </b></a> ';
  23. }
  24. if($_GET['strona']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  25. echo ' <a href="?strona='.($_GET['strona']+1).'">Następne &raquo;</a></center>';
  26. }
  27.  
  28. ?>
uzi123
Z tego co rozumiem w tym fragmencie kodu wypisujesz sobie te numerki
  1. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  2. echo '<a href="?strona='.($i).'"><b> '.($i+1).' </b></a> ';
  3. }

To co za problem sobie dołożyć tu ze dwa if-y?
(pisze z palca wiec moga byc literowki)

  1. $aktual=$_GET['strona'] //nie zapomnij zabezpieczyc get'a
  2. $iloscstron=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE); // ilosc wszystkich stron
  3. $poczatkowe=2; //ilosc poczatkowych stron
  4. $koncowe=$iloscstron-$poczatkowe; //ilosc koncowych stron
  5. $sasiednie=2; //ilosc stron sasiadujacych z aktualną
  6.  
  7. for($i = 0;$i<=$iloscstron;$i++){
  8. if ($i<=$poczatkowe || $i>=$koncowe || abs($i-$aktual)>=$sasiednie) {
  9. echo '<a href="?strona='.($i).'"><b> '.($i+1).' </b></a> ';
  10. }
  11. }


thek
Ech... Gotowych skryptów tego typu było już na forum kilkanaście. Jak widzę ktoś bardzo leniwy albo ma uraz do szukajki. Co ona Ci zrobiła? Pobiła kogoś? winksmiley.jpg
poli25
google
You tube + phpacademy + pagination polecami filmik jest bardzo dobry
djgarsi
No dobrze. Było już kilka skryptów stronicowania. Ale czy były jakieś w takiej formie jak ja potrzebuje? Jeśli tak to czy mógłbym prosić o dział w ktorym się znajduje?
thek
Były różne warianty... najczęstszy to...
Pierwsza Poprzednia (tu ileś stron wcześniejszych) (aktualna) (tu ileś stron późniejszych) Następna Ostatnia
Może więc ciut inaczej, ale moim zdaniem sensowniej niż:
Strony: 1 2 3 4 5 6 ... 15 16 17 18 >>
gdyż userzy wolą mieć dostęp do stron sąsiednich do aktualnej, a nie iluś pierwszych i iluś ostatnich winksmiley.jpg Tematu Ci nie podam, bo wpisanie do wyszukiwarki słów takich jak stronicowanie lub paginacja i znalezienie tych gdzie to rozwiązanie jest nie jest wysiłkiem na miarę Herkulesa biggrin.gif
djgarsi
No właśnie szukałem w wyszukiwarce forumowej i większość wyników to teksty typu "szukaj w google" albo "wyszukiwarke uruchom"
skowron-line
Nie chce mi się szukać na sieci. Kohana FW.
  1. <?php defined('SYSPATH') OR die('No direct access allowed.');
  2. /**
  3.  * Digg pagination style
  4.  *
  5.  * @preview Ť Previous 1 2 … 5 6 7 8 9 10 11 12 13 14 … 25 26 Next ť
  6.  */
  7. ?>
  8.  
  9. <p class="pagination">
  10.  
  11. <?php if ($previous_page): ?>
  12. <a href="<?php echo str_replace('{page}', $previous_page, $url) ?>">&laquo;&nbsp;<?php echo Kohana::lang('pagination.previous') ?></a>
  13. <?php else: ?>
  14. &laquo;&nbsp;<?php echo Kohana::lang('pagination.previous') ?>
  15. <?php endif ?>
  16.  
  17.  
  18. <?php if ($total_pages < 13): /* Ť Previous 1 2 3 4 5 6 7 8 9 10 11 12 Next ť */ ?>
  19.  
  20. <?php for ($i = 1; $i <= $total_pages; $i++): ?>
  21. <?php if ($i == $current_page): ?>
  22. <strong><?php echo $i ?></strong>
  23. <?php else: ?>
  24. <a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a>
  25. <?php endif ?>
  26. <?php endfor ?>
  27.  
  28. <?php elseif ($current_page < 9): /* Ť Previous 1 2 3 4 5 6 7 8 9 10 … 25 26 Next ť */ ?>
  29.  
  30. <?php for ($i = 1; $i <= 10; $i++): ?>
  31. <?php if ($i == $current_page): ?>
  32. <strong><?php echo $i ?></strong>
  33. <?php else: ?>
  34. <a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a>
  35. <?php endif ?>
  36. <?php endfor ?>
  37.  
  38. &hellip;
  39. <a href="<?php echo str_replace('{page}', $total_pages - 1, $url) ?>"><?php echo $total_pages - 1 ?></a>
  40. <a href="<?php echo str_replace('{page}', $total_pages, $url) ?>"><?php echo $total_pages ?></a>
  41.  
  42. <?php elseif ($current_page > $total_pages - 8): /* Ť Previous 1 2 … 17 18 19 20 21 22 23 24 25 26 Next ť */ ?>
  43.  
  44. <a href="<?php echo str_replace('{page}', 1, $url) ?>">1</a>
  45. <a href="<?php echo str_replace('{page}', 2, $url) ?>">2</a>
  46. &hellip;
  47.  
  48. <?php for ($i = $total_pages - 9; $i <= $total_pages; $i++): ?>
  49. <?php if ($i == $current_page): ?>
  50. <strong><?php echo $i ?></strong>
  51. <?php else: ?>
  52. <a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a>
  53. <?php endif ?>
  54. <?php endfor ?>
  55.  
  56. <?php else: /* Ť Previous 1 2 … 5 6 7 8 9 10 11 12 13 14 … 25 26 Next ť */ ?>
  57.  
  58. <a href="<?php echo str_replace('{page}', 1, $url) ?>">1</a>
  59. <a href="<?php echo str_replace('{page}', 2, $url) ?>">2</a>
  60. &hellip;
  61.  
  62. <?php for ($i = $current_page - 5; $i <= $current_page + 5; $i++): ?>
  63. <?php if ($i == $current_page): ?>
  64. <strong><?php echo $i ?></strong>
  65. <?php else: ?>
  66. <a href="<?php echo str_replace('{page}', $i, $url) ?>"><?php echo $i ?></a>
  67. <?php endif ?>
  68. <?php endfor ?>
  69.  
  70. &hellip;
  71. <a href="<?php echo str_replace('{page}', $total_pages - 1, $url) ?>"><?php echo $total_pages - 1 ?></a>
  72. <a href="<?php echo str_replace('{page}', $total_pages, $url) ?>"><?php echo $total_pages ?></a>
  73.  
  74. <?php endif ?>
  75.  
  76.  
  77. <?php if ($next_page): ?>
  78. <a href="<?php echo str_replace('{page}', $next_page, $url) ?>"><?php echo Kohana::lang('pagination.next') ?>&nbsp;&raquo;</a>
  79. <?php else: ?>
  80. <?php echo Kohana::lang('pagination.next') ?>&nbsp;&raquo;
  81. <?php endif ?>
  82.  
  83. </p>


Nie wiem czy się połączą moje dwa posty ale dla tych co by jeszcze czytali ten wątek to
http://mis-algoritmos.com/digg-style-pagin...=var&page=2
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.