Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MYSQL] stronicowanie
sumek
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.01.2008

Ostrzeżenie: (0%)
-----


Witam wiem że temat był poruszany setki razy przeglądałem forum szukałem ale nie umiem sobie poradzić.

chodzi o stronicowanie typu: poprzednia [1][2][3]...[8][9][10] następna

znalazłem post o Pagerze ale nie czaje tego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) a jak zacząlem kombinować to nic nie wypaliło, z góry mówię że to początki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Może pokażę co mam i co z tego pójdzie zrobić, z góry dzięki za pomoc.

  1. <?php
  2. include("config.php");
  3.  
  4. $query = mysql_query('SELECT * FROM cms_news');
  5.  
  6. $ile = mysql_num_rows($query);
  7. $na_strone = 5;
  8. $stron = ceil ($ile / $na_strone);
  9.  
  10. if (!isset($_GET['strona'])) $strona = 1; else $strona = (int)$_GET['strona'];
  11. $query = mysql_query ('SELECT * FROM cms_news ORDER BY id DESC LIMIT '.(($strona-1)*$na_strone).','.$na_strone.'');
  12.  
  13. while ($pokaz=mysql_fetch_array($query)) {
  14. $temat=$pokaz['temat'];
  15.  
  16. echo"<div> + ".$temat."</div>
  17. ";
  18.  
  19. }
  20. if($_GET['strona']>1){ 
  21. echo '<a href="stronic.php?strona='.($_GET['strona']-1).'">Poprzednia</a> ';
  22. }
  23.  
  24. for($i = 0;$i<= $stron-1;$i++){
  25.  
  26.  if($i==$strona-1){ echo '[ '.($strona).' ]'; }else{ echo '<a href="stronic.php?strona='.($i+1).'">[ '.($i+1).' ]</a> '; }
  27. } 
  28.  
  29. if($_GET['strona'] < $stron){ 
  30.  echo ' <a href="stronic.php?strona='.($_GET['strona']+1).'">Następna</a>';
  31. }
  32. ?>


Ten post edytował sumek 22.01.2008, 13:58:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jak chcesz możesz zastosować np taki sposób:

  1. <?php
  2. function pages ($first, $countpages, $nrpages, $zap, $pglink) {
  3. if($countpages > $nrpages ){
  4. $countpages = $countpages/$nrpages; 
  5. $ile = ceil($countpages); 
  6.  
  7. if ($first!=0) echo("<a href=\"".$pglink."&first=" . ($first-$nrpages) . "\" title=\"Poprzednie\"><big>Ť</big></a> "); 
  8.  
  9. for ($i=1;$i<=$ile;$i++) 
  10. { 
  11.  
  12.  echo("<a href=\"".$pglink."&first=" . ($i*$nrpages-$nrpages) . "\" title=\"" . ($i*$nrpages-($nrpages-1)) . "-" . ($i*$nrpages) ."\">");
  13.  
  14.  if ($first==($i*$nrpages-$nrpages)) 
  15.  { 
  16.  echo ("<b>|" . $i . "|</b></a> "); $akt=$i; } else { print ("|" . $i . "|</a> "); 
  17.  } 
  18. } 
  19.  
  20. if ($akt<$ile) echo ("<a href=\"".$pglink."&first=" . ($first+$nrpages) . "\" title=\"Następne\"><big>ť</big></a>");
  21. }
  22. }
  23.  
  24. if (!isset($_GET['first'])) $first = 0;
  25. else $first = (int) $_GET['first']; 
  26. $nrpages = 2; //tu podajesz ilość wpisów do wyświetlania
  27. $pglink = "index.php?go=show"; //tu podajesz adres strony
  28. $zap = mysql_query("SELECT * FROM tabela order by id desc LIMIT $first,$nrpages;") or die(mysql_error());
  29. $countpages = mysql_num_rows(mysql_query("SELECT id FROM tabela ")); //zlicza ilość wpisów z tabeli
  30. while ($row = mysql_fetch_array($zap)) {
  31. echo '<div>'.$row['text'].'</div>'; 
  32. }
  33. echo '<div id="pager">';
  34. echo pages($first, $countpages, $nrpages, $zap, $pglink);
  35. echo '</div><div>';
  36. ?>


Możesz tą funkcję zastosować do kilku modułów.
Go to the top of the page
+Quote Post
sumek
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.01.2008

Ostrzeżenie: (0%)
-----


Cytat(potreb @ 22.01.2008, 14:33:10 ) *
Jak chcesz możesz zastosować np taki sposób:

[php]function pages ($first, $countpages, $nrpages, $zap, $pglink) {
if($countpages > $nrpages ){
$countpages = $countpages/$nrpages;
$ile = ceil($countpages);

....................

Możesz tą funkcję zastosować do kilku modułów.


świetnie, tylko nie o to chodziło jak pisałem wyżej chodzi mi o poprzednia 1, 2, 3,...8, 9, 10 nastepna
nie o to żeby mi wszystkie wyświetlało. bo tak to już mam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 03:25