Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Stronnicowanie wyniku zapytania...
imm
post 8.01.2005, 12:47:51
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2003

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


Mam skrypt, ktory pobiera z bazy ilosc rekordow, dzieli na strony i wyswietla np tak: 1 2 3 4 5 6 7 8 9...20. Wszystko super. Moj problem polega na tym ze nie potrafie napisac skryptu, ktory by wyswietlal te numerki w taki sposob:
Klikam na 6 i chce zeby po przeladowaniu skrypt generowal: 3 4 5 6 7 8 9 10 11 12 ... 20, a teraz klikne na 12 i po przeladowaniu 9 10 11 12 13 14 15 16 17 ... 20, albo klikam na 10 i mam 7 8 9 10 11 12 13 14 15 ... 20.
Chyba to w miare jasno wyjasnilem tongue.gif. Google w ten sposob segreguje wyniki wyszukiwania.
Pozdrawiam i prosze o pomoc bo juz nie moge... tongue.gif
Go to the top of the page
+Quote Post
hwao
post 8.01.2005, 13:10:12
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2.  
  3. // petal co to wysietla
  4.  
  5. if( $i == $_GET['page'] )
  6. {
  7. echo '<b>'. $i .'</b>';
  8. }
  9. else
  10. {
  11.  echo $i;
  12. }
  13. ?>
Go to the top of the page
+Quote Post
tiraeth
post 8.01.2005, 14:48:15
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


a najlepiej to zrobić to tak:
  1. <?
  2. // przykładowa pętla
  3. // @param $wszystkich - liczba wszystkich stron
  4. $strona = $_GET['page']; // musi byc minimum 1
  5. $zaczynamy = $strona; $zaczynamy = ($strona >= 3)?$zaczynamy-3:0;
  6. $konczymy = $strona+3;
  7. for($i=$zaczynamy; $i<$konczymy; $i++)
  8. {
  9.  echo ($i==$strona)?'<b>'.$i.'</b>&nbsp;':$i.'&nbsp;';
  10. }
  11. echo '... '.$wszystkich;
  12. ?>
Go to the top of the page
+Quote Post
imm
post 8.01.2005, 15:33:51
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2003

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


Widze ze nie zostalem zrozumiany tongue.gif. Nie chodzi mi o pogrubianie... tylko o jakby przesuwanie sie zakresu tych stron... np mam 1 2 3 4 5 ... 15 i klikne sobie na 4 to zamiast 1 2 3 4 5 ... 15 wyswietli mi 2 3 4 5 6 ... 15 gdzie 15 bedzie odsylalo do ostatniej strony. Nie wiem jak to wyjasnic.... Tam gdzie bedzie uzywany ten skrypt minimum bedzie 30 stron i brzydko wyglada 1 2 3 4 5 6 7 8 9 itd az do 30... chce miec 10 liczb i na koncu przykladowo ... 30 i wlasnie mam problem z tym zeby bylo caly czas 10 liczb i w zaleznosci od strony odpowiedni ich przedzial.... bede na 15 stronie to bedzie przykladowo 12 13 14 15 16 17 18 19 20 21 .... 30. Juz bardziej chyba nie moge wyjasnic tongue.gif. Chce poprostu sposob na to przesuwanie sie przedzialu w zaleznosci czy schodze w dol czy w gore...
Go to the top of the page
+Quote Post
awides
post 8.01.2005, 17:38:05
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


ostatnio napisałem coś takiego
  1. <?php
  2.  
  3. function naglowek_forum($id, $strona) 
  4.  {
  5.  $wynik = @mysql_query(&#092;"SELECT count(xxx) 
  6. FROM xxx
  7. WHERE xxx = '$id'&#092;");
  8.  
  9.  $ilosc_postow = mysql_result($wynik, 0, 'count(xxx)'); 
  10.  
  11.  $a = $ilosc_postow / 15;
  12.  
  13.  if (gettype($a) == 'integer') {
  14.  for($i=1; $i<=$a; $i++) {
  15.  $I = $i;
  16.  }
  17.  }
  18.  else {
  19.  for($i=1; $i<=$a+1; $i++) {
  20.  $I = $i;
  21.  }
  22.  }
  23.  
  24.  if (@ $I > 1 && @ $I < 5) {
  25. echo '<tr><td colspan=\"5\" align=\"right\">Strona: <b>'.(empty($_GET['st']) ? 1 : $_GET['st']).'</b> &nbsp;&nbsp;';
  26.  
  27. if(gettype($a) == 'integer') {
  28.  for($i=1; $i<=$a; $i++) {
  29.  $I = $i;
  30.  echo '<a href=\"index_temat.php?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a>&nbsp;';
  31.  }
  32. }
  33. else {
  34.  for($i=1; $i<=$a+1; $i++) {
  35.  $I = $i;
  36.  echo '<a href=\"index_temat.php?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a>&nbsp;';
  37.  }
  38. }
  39. echo '</td></tr>';
  40.  }
  41.  else if(@ $I > 4) {
  42.  #jeżeli jest wiecej niż 4 strony...
  43.  
  44. echo '<tr><td colspan=\"5\" align=\"right\">Strona: <b>'.(empty($_GET['st']) ? 1 : $_GET['st']).'</b> &nbsp;&nbsp;';
  45. $end = $I;
  46. (empty($_GET['st']) ? $start = 1 : $start = $_GET['st']);
  47.  
  48.  if($start+>= $end) {  
  49. for($i = $end-3; $i <= $end-1; $i++) {
  50. $I = $i;
  51. echo '<a href=\"index_temat.php?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a>&nbsp;';
  52. }
  53. echo '... <a href=\"index_temat.php?id='.$id.'&st='.$end.'\">[ '.$end.' ]</a>&nbsp;';
  54.  }
  55.  else if($start > 1) {
  56. for($i = $start-1; $i < $start+2; $i++) {
  57. $I = $i;
  58. echo '<a href=\"index_temat.php?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a>&nbsp;';
  59. }
  60. echo '... <a href=\"index_temat.php?id='.$id.'&st='.$end.'\">[ '.$end.' ]</a>&nbsp;';
  61.  } 
  62.  else {
  63. for($i = 1; $i < 4; $i++) {
  64. $I = $i;
  65. echo '<a href=\"index_temat.php?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a>&nbsp;';
  66. }
  67. echo '... <a href=\"index_temat.php?id='.$id.'&st='.$end.'\">[ '.$end.' ]</a>&nbsp;';
  68.  }  
  69. echo '</td></tr>';
  70.  }
  71.  }
  72. ?>


mało skomplikowane smile.gif może to kiedyś dopracuje...

Ten post edytował awides 8.01.2005, 17:53:37


--------------------
redFox |||||||||| 30%
----------------------------------
Go to the top of the page
+Quote Post
kicaj
post 8.01.2005, 17:51:48
Post #6





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


  1. <?php
  2. // ...
  3. if (gettype($a) == 'integer')
  4. // ...
  5. ?>
Czy takie cos w tym przypadku jest potrzebne?
Przeciz wiadomo ze funkcja mysql_results" title="Zobacz w manualu PHP" target="_manual() (w tym przypadku) zwroci `integer` !?

Ten post edytował kicaj_ 8.01.2005, 17:53:02


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
awides
post 8.01.2005, 17:58:00
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


zauważ że jest dzielenie które może zwrócić double


--------------------
redFox |||||||||| 30%
----------------------------------
Go to the top of the page
+Quote Post
Liko
post 8.01.2005, 18:40:20
Post #8





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


Ja kiedys napisalem cos takiego:
  1. <?php
  2. /**
  3.  * ! Stronicowanie !
  4.  * $numNews - ilosc newsow
  5.  * $numPage - ilosc stron
  6.  * $numLimitLink - limit linkow
  7.  * $numLimitNews - ilosc newsow na strone
  8.  * $activePage - aktywna strona
  9.  * $urlMod - sciezka z / lub bez
  10.  * $pagerLink - tresc pagera.
  11.  * $offsetDB - offset bazy danych
  12.  */
  13. $pagerLink = '';
  14. $numPage = ceil( $numNews/$sysConfig['limitNewsPage'] );
  15. $activePage = isset( $sysAction[4] ) ? $sysAction[4] : 1;
  16. if( isset( $sysAction[4] ) ) $urlMod = '';
  17. else $urlMod = $sysAction[3].'/';
  18. if( $activePage > 1 ) { 
  19. $pagerLink .= '&nbsp;&lt;&lt;&nbsp;'; 
  20. $pagerLink .= '&nbsp;'.$action['info']['pager']['prev'].'&nbsp;';
  21. }
  22. if( $activePage-$sysConfig['limitNewsLinks'] > 1 ) $pagerLink .= '...';
  23. if( $activePage-$sysConfig['limitNewsLinks'] >= 1 ) $startFor=$activePage-$sysConfig['limitNewsLinks'];
  24. else $startFor = 1;
  25. if( $activePage == $numPage || $activePage+$sysConfig['limitNewsLinks'] > $numPage ) $stopFor = $numPage+1;
  26. else $stopFor = $activePage+$sysConfig['limitNewsLinks']+1;
  27. $offsetDB = $activePage*$sysConfig['limitNewsPage']-$sysConfig['limitNewsPage'];
  28. for( $i=$startFor; $i<$stopFor; $i++) {
  29. if( $i == $activePage ) $pagerLink .= '&nbsp;'.$i.'&nbsp;';
  30. else $pagerLink .= '&nbsp;'.$i.'&nbsp;'; 
  31. }
  32. if( $activePage < $numPage-$sysConfig['limitNewsLinks'] ) $pagerLink .= '...';
  33. if( $activePage < $numPage ) {
  34. $pagerLink .= '&nbsp;'.$action['info']['pager']['next'].'&nbsp;';
  35. $pagerLink .= '&nbsp;&gt;&gt;&nbsp;';
  36. }
  37. /**
  38.  * ! Koniec Stronicowanie !
  39.  */
  40. ?>


Pewnie jest błedów troche, bo jak to pisalem to jakis (rok temu) mialem mniej wiedzy.
Go to the top of the page
+Quote Post
imm
post 8.01.2005, 18:56:25
Post #9





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.04.2003

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


awides wielkie dzieki. Usprawnilem to troche i przystosowalem do moich potrzeb. Dziala wysmienicie smile.gif.
Go to the top of the page
+Quote Post
bartyk
post 11.01.2005, 16:08:10
Post #10





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


ja mam podobny problem.

niestety korzystam z $_POST a wszystko obsługuję przez jeden plik.
jak można stronicować wynik w takim przypadku?


--------------------
Pozdr

Bartek
Go to the top of the page
+Quote Post
awides
post 11.01.2005, 17:06:37
Post #11





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


z $_POST tzn ?

jeżeli dobrze zrozumiałem to przekazujesz nr strony, id w $_POST jeżeli tak to wystarczy zamienić $_GET['st'] -> $strona
dane:
  1. <?php
  2. id = $_POST['xxx'];
  3. $strona = $_POST['xxx'];
  4. ?>


--------------------
redFox |||||||||| 30%
----------------------------------
Go to the top of the page
+Quote Post
bartyk
post 12.01.2005, 11:15:49
Post #12





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


awides,

mówiąc dokładniej przekazuje parametry zapytania i wysyłam przez $_POST. Ładuje mi osobny template, który wypełniam wynikiem zapytania. Pierwsza strona jest OK. Problem jest ze zmiana strony - zawartość $_POST nie jest już dalej przekazywana sad.gif

jakiś pomysł ?


--------------------
Pozdr

Bartek
Go to the top of the page
+Quote Post
awides
post 12.01.2005, 17:27:27
Post #13





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 4.11.2004

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


java + cookies

1. wstawiasz kod:
  1. function zapiszCookie(tryb)
  2. {
  3. document.cookie = "st=" + tryb + "; path=/; expires=Mon, 7 Mar 2038 00:00:00 GMT;";
  4. }
  5.  
  6. function strona(st, id)
  7. {
  8. zapiszCookie(id);
  9. window.open(st, '_self');
  10. }

2. inicjujesz cookie jezeli go nie ma
  1. <?php
  2. function naglowek_forum($id) 
  3. {
  4. (empty($_COOKIE['st']) ? $_COOKIE['st'] = 1 : '' );
  5.  
  6. //...
  7. }
  8. ?>

3. linki typu:
  1. <?php
  2. echo '<a href=\"strona('index_temat.php, $i)...
  3. ?>


ogólnie coś takiego, dodaj do tego jeszcze id, ide bo mam *** nauki

(nie wiem czy to bedzie dzialac)

Ten post edytował awides 12.01.2005, 17:29:06


--------------------
redFox |||||||||| 30%
----------------------------------
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 15.08.2025 - 03:15