Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nawigator
Forum PHP.pl > Forum > PHP
^piraciq^
Witam Wielkie Zgromadzenie biggrin.gif

mam taka sprawe jak widac w tytule chodzi mi o nawigatora na strone tak jak jest tu na forum na dole z podzialem na strony by bylo widac pirwsza strone ostatnia i piec kolejnych lub dziesiec. klikam na 5 dajmy na to strone i w nawigatorze widac

Pierwsza strona 5 6 7 8 9 10 ostatnia strona cos w tym stylu

z góry dziekuje za pomoc
Fipaj
Czy chodzi ci o dzielenie wyników z tabeli MySQL na kilka stron?? Bo dla mnie to nie jest jasna wypowiedź...
  1. <a href="1.htm">1</a>...
tiraeth
@Fipaj mam ostatnią prośbę do Ciebie.... Twoje odpowiedzi są żałosne więc się nie odzywaj... ok?

@^piraciq^: Sprecyzuj pytanie: MySQL czy pliki TXT etc. questionmark.gif
lovefool
Cytat(Fipaj @ 2005-02-25 12:25:20)
Czy chodzi ci o dzielenie wyników z tabeli MySQL na kilka stron?? Bo dla mnie to nie jest jasna wypowiedź...
  1. <a href="1.htm">1</a>...

nie do jak dla mnie to wypassss laugh.gif laugh.gif laugh.gif
Fipaj
@Tiraeth: nie zrozumiałem pytania... chociaż może rzeczywiście niepotrzebny post :oops: wacko.gif
Vertical
Załóżmy, że adres na którym użytkownik się znajduje to "index.php?id=5" (informacje na której stronie się znajduje jest w adresie) Najpierw piszesz zapytanie, które policzy ile ma być stron. Załóżmy, że na jednej stronie ma być 10 rekordów:
  1. <?php
  2. //łączenie do bazy...
  3. mysql_query(&#092;"SELECT COUNT(*) AS ilosc FROM tabela WHERE warunek\");
  4. if( !is_int($ilosc/10) )
  5. {
  6.  $ile_stron = ceil($ilosc/10);
  7. } elseif( is_int($ilosc/10) )
  8. {
  9.  $ile_stron = ($ilosc/10);
  10. }
  11. if( $ile_stron >= $_GET['id'] )
  12. {
  13. //teraz wywołujemy strony:
  14. print(&#092;"[<a href = 'index.php?id=1'>Pierwsza</a>]... n\");
  15. }
  16. if( $ile_stron >= ($_GET['id']+1) )
  17. {
  18. print(&#092;"[<a href = 'index.php?id='\". ($_GET['id']+1) .\"'>\". ($_GET['id']+1) .\"] n\"); 
  19. } else
  20. {
  21. }
  22. if( $ile_stron >= ($_GET['id']+2) )
  23. {
  24. print(&#092;"[<a href = 'index.php?id='\". ($_GET['id']+2) .\"'>\". ($_GET['id']+2) .\"] n\");
  25. } else
  26. {
  27. }
  28. //...i tak dalej aż do if( $ile_stron >= ($_GET['id']+5) )
  29. if( $ile_stron != '1' )
  30. {
  31. print(&#092;" ...[<a href = 'index.php?id='\". $ile_stron .\"'>Ostatnia</a>]n\");
  32. }
  33.  
  34. ?>

...jeszcze tego nie testowałem, ale mam nadzieję, że zadziała... Jakby był jakiś błąd to mnie poprawcie
^piraciq^
Sory ze dopiero teraz ale grypa mnie dopadla dzieki za info

@Fipaj - no dzieki fajny pomsyl laugh.gif

@Tiraeth - mysql :-)

@Vertical - dzieki dziala


sory jeszcze raz ze teraz ale mam nadzieje ze rozumiecie :-)

pozdrawiam
ActivePlayer
porcjowanie bylo nie raz na forum ?
MStaniszczak
Witam

Ja kiedyś napisałem sobie taką klasę – działała, ale dziś już mam to inaczej napisane. W każdym razie może się przyda;-) Nowej klasy nie dam, ale może sobie tą ktoś przerobi;-) Jak się przyda to fajno jak nie to też. A jak używać chyba widać;-)

  1. <?php
  2. if (eregi(&#092;"class.pagesMenu.inc.php\",$_SERVER['PHP_SELF'])) {
  3. Header(&#092;"Location: ../index.php\");
  4. die();
  5. }
  6.  
  7. class cPagesMenu {
  8. var $current;
  9. var $max;
  10.  
  11. var $jumpSize;
  12.  
  13. var $numbersTable;
  14.  
  15. var $next;
  16. var $back;
  17.  
  18. function cPagesMenu($from, $max, $jump) {
  19. $this->current = ceil($from/$jump)+1;
  20. $this->max = ceil($max/$jump);
  21. $this->jumpSize = $jump;
  22.  
  23. if($from<0)
  24. $form = 0;
  25.  
  26. if($from>$max)
  27. $from = $max-$jump;
  28.  
  29. if($this->current<=3) {
  30. $to = $this->max;
  31. if($this->max>=7)
  32. $to = 7;
  33.  
  34. for($count = 1; $count<=$to; $count++) {
  35. if($count == $this->current)
  36. $tmp = array('Number' => $count, 'Current' => true);
  37. else
  38. $tmp = array('Number' => $count, 'Current' => false, 'From' => ($count-1)*$jump);
  39.  
  40. $this->numbersTable[$count-1] = $tmp;
  41. }
  42.  
  43. if($this->current > 1)
  44. $this->back = true;
  45. else
  46. $this->back = false;
  47.  
  48. if($this->current < $this->max)
  49. $this->next = true;
  50. else
  51. $this->next = false;
  52. } elseif($this->current<=($this->max-3) && ($this->current>3)) {
  53. for($count = $this->current-3, $index = 0; $count<=$this->current+3; $count++, $index++) {
  54. if($count == $this->current)
  55. $tmp = array('Number' => $count, 'Current' => true);
  56. else
  57. $tmp = array('Number' => $count, 'Current' => false, 'From' => ($count-1)*$jump);
  58.  
  59. $this->numbersTable[$index] = $tmp;
  60. }
  61.  
  62. if($this->current > 1) 
  63. $this->back = true; 
  64. else
  65. $this->back = false;
  66.  
  67. if($this->current < $this->max)
  68. $this->next = true;
  69. else
  70. $this->next = false;
  71. } elseif($this->current>($this->max-3)) {
  72. if($this->max > 7)
  73. $fr = $this->max-6;
  74. else
  75. $fr = $this->max-($this->max-1);
  76.  
  77.  
  78. for($count = $fr, $index = 0; $count<=$this->max; $count++, $index++) {
  79. if($count == $this->current)
  80. $tmp = array('Number' => $count, 'Current' => true);
  81. else
  82. $tmp = array('Number' => $count, 'Current' => false, 'From' => ($count-1)*$jump);
  83.  
  84. $this->numbersTable[$index] = $tmp;
  85. }
  86.  
  87. if($this->max-$this->current >= 0)
  88. $this->back = true;
  89. else
  90. $this->back = false;
  91.  
  92. if($this->current<$this->max)
  93. $this->next = true;
  94. else
  95. $this->next = false;
  96. }
  97. }
  98.  
  99. function getNumbers() {
  100. return $this->numbersTable;
  101. }
  102.  
  103. function getCurrent() {
  104. return $this->current;
  105. }
  106.  
  107. function getNext() {
  108. if($this->next)
  109. return (($this->current-1)*$this->jumpSize)+$this->jumpSize;
  110. else 
  111. return false;
  112. }
  113.  
  114. function getBack() {
  115. if($this->back)
  116. return (($this->current-1)*$this->jumpSize)-$this->jumpSize;
  117. else
  118. return false;
  119. }
  120. }
  121. ?>

Pozdrawiam
Marcin Staniszczak
^piraciq^
Witam ja tez coś mam moze komus sie kiedys przyda
  1. <? 
  2. $sql_num = $sql->query(&#092;"SELECT * FROM tabela\"); 
  3. $ile=mysql_num_rows($sql_num); 
  4. $limit=&#092;"5\";// ilosc linkow 
  5. $limit_linkow=&#092;"50\";//ile wynikow na stronie
  6. $count=$ile/$limit_linkow; 
  7.  
  8.  $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
  9.  if (($page < 1) || ($page > $count)) $page = 1; 
  10.  
  11.  if ($count > $limit) { 
  12.  
  13.  $start = $page - floor($limit / 2); 
  14.  if ($start < 1) $start = 1; 
  15.  
  16.  $end = $start + $limit - 1; 
  17.  if ($end > $count) { 
  18. $end = $count; 
  19. $start = $end - $limit; 
  20.  } 
  21.  
  22.  } else { 
  23. $start = 1; 
  24. $end = $count; 
  25.  } 
  26.  
  27.  $pgback = $page - 1; 
  28.  $pgnext = $page + 1; 
  29.  
  30.  if ($page >1) echo&#092;"<a href=\"?page=$pgback\"><< poprzednia</a>\"; 
  31.  for ($x=$start;$x<=$end;$x++) { 
  32.  
  33. if ($x != $page) { 
  34.  $t = $x; 
  35.  
  36.  echo &#092;" <a href=\"?page=$x\">$t</a>n \"; 
  37. } else echo &#092;" <b>[$x]</b> \"; 
  38.  
  39.  } 
  40.  if ($page < $count-1) echo&#092;"<a href=\"?page=$pgnext\">nastepna >></a>n\"; 
  41. ?>



Kazde uwagi mile widziane pozdrawiam mam nadzieje ze komu sie przyda
Dwight
a jak przerobić to na txt??
MStaniszczak
Witam

Klasa którą podałem "stronicuje" niezależnie od bazy, pliku etc;-)

Pozdrawiam
Marcin Staniszczak
Vengeance
Odnosnie TXT:
http://strefaphp.net/index.php?page=forum&...iew_topic&t=268
^piraciq^
  1. <? 
  2. $sql_num = $sql->query(&#092;"SELECT * FROM tabela\"); 
  3. $ile=mysql_num_rows($sql_num); 
  4. $limit=&#092;"5\";// ilosc linkow 
  5. $limit_linkow=&#092;"50\";//ile wynikow na stronie
  6. $count=ceil($ile/$limit_linkow); 
  7.  
  8. $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
  9. if (($page < 1) || ($page > $count)) $page = 1; 
  10.  
  11. if ($count > $limit) { 
  12.  
  13. $start = $page - floor($limit / 2); 
  14. if ($start < 1) $start = 1; 
  15.  
  16. $end = $start + $limit - 1; 
  17. if ($end > $count) { 
  18. $end = $count; 
  19. $start = $end - $limit; 
  20. } 
  21.  
  22. } else { 
  23. $start = 1; 
  24. $end = $count; 
  25. } 
  26.  
  27. $pgback = $page - 1; 
  28. $pgnext = $page + 1; 
  29.  
  30. if ($page >1) echo&#092;"<a href=\"?page=$pgback\"><< poprzednia</a>\"; 
  31. for ($x=$start;$x<=$end;$x++) { 
  32.  
  33. if ($x != $page) { 
  34.  $t = $x; 
  35.  
  36.  echo &#092;" <a href=\"?page=$x\">$t</a>n \"; 
  37. } else echo &#092;" <b>[$x]</b> \"; 
  38.  
  39. } 
  40. if ($page < $count) echo&#092;"<a href=\"?page=$pgnext\">nastepna >></a>n\"; 
  41. ?>


Wcześniej wkradł sie błąd nikt nie zauważyłquestionmark.gif?
pozdrawiam
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.