Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ilość odpowiedzi na stronie?, jak to zrobić?
irysek110
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 29.01.2005

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


Witajcie!


W trakcie realizacji swojego projektu natknąłem się na problem: nie wiem jak wyświetlać np. po 10 odpowiedzi na stronie, a na samym dole (pod wyświetlonymi odpowiedziami) umieścić cyferki oznaczające ilość stron odpowiedzi pozostałych do obejrzenia czyli coś w rodzaju: 1 [2] [3] itp..

Ma ktoś jakiś pomysł?

Dziękuję za wszystkie odpowiedzi.

Irysek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jarod
post
Post #2





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(mario @ 2005-05-07 17:49:21)
  1. <?php
  2. $zapytanie = &#092;"SELECT * FROM tabela\";
  3. $result = mysql_query($zapytanie);
  4. $rekordy = mysql_num_rows ($result);
  5.  
  6. $max_poz = 10;
  7.  
  8. echo &#092;"<p align=center>\";
  9.  
  10. // jeśli wchodzimy bez parametru $page pierwsza strona
  11. // ustawia się jako pierwsza i pętla startuje od cyfry 0
  12.  
  13. If ($page==&#092;"\")
  14.  {
  15. $page=1;
  16. $start=0;
  17.  }
  18.  
  19. else
  20.  
  21. // jeśli wchodzimy z parametrem pierwsza strona
  22. // ustawia się z podanego parametru $page i pętla startuje od parametru $page
  23.  
  24.  {
  25. $start=$page*$max_poz;
  26. $start=$start-$max_poz;
  27.  }
  28.  
  29. $stron = ceil ($rekordy/$max_poz);  // instrukcja ceil zaokrągla ułamki w górę do pełnej liczby
  30.  
  31. // wykonujemy pętelki z podziałem na odnośniki do poszczególnych stron
  32.  
  33. If ($page>1)
  34.  {
  35. $strona=$page-1;
  36. echo &#092;"<a href='index.php?page=$strona'>poprzednie</a> &nbsp; \";
  37.  }
  38.  
  39. For ($index=1;
  40.  $index <= $stron;
  41.  $index++)
  42.  {
  43. If (($page==$index) and ($stron!=1))
  44.  {
  45. echo&#092;"<font color=red><b>$index</b></font> | \";
  46. $next=$page+1;
  47.  }
  48. elseif ($stron!=1)
  49.  echo&#092;" <b><a href='index.php?page=$index'>$index</a></b> | \";
  50.  
  51. If (($page>0) and ($index==$stron) and ($page<$stron))
  52.  echo &#092;" &nbsp; <a href='index.php?page=$next'>następne</a>\";
  53.  }
  54.  
  55. // pobierasz sobie z bazy dane w zakresie oznaczonym $start, $max_poz (czyli z aktualnej strony na której jesteś)
  56.  
  57. $zapytanie = &#092;"SELECT * FROM tabela LIMIT $start, $max_poz\";
  58. $result = mysql_query($zapytanie);
  59.  
  60.  while ($r= mysql_fetch_array($result))
  61.  {
  62.  $zmienna = $r [zmienna];
  63.  ......
  64.  ......
  65.  }
  66.  
  67. ?>

@mario: Mam jedno pytanie. Użyłeś na samym początku skrytpu kodu:
  1. <?php
  2.  
  3. $zapytanie = &#092;"SELECT * FROM tabela\";
  4. $result = mysql_query($zapytanie);
  5. $rekordy = mysql_num_rows ($result);
  6.  
  7. ?>

do pobrania ilości wszystkich wierszy. A nie szybciej będzie jak zrobisz tak:
  1. <?php
  2.  
  3. $zapytanie = &#092;"SELECT Count(primary key) FROM tabela\";
  4. $result = mysql_query($zapytanie);
  5. $rekordy = mysql_fetch_row($result);;
  6.  
  7. ?>

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Drugie pytanie: czy da się skrypt przerobić tak, żeby za każdym razem wywoływania samego siebie nie sprawdzał ilości rekordów? Bo po co cały czas robić to samo?

Pozdrawiam

PS. Jestem bliski rozwiązania tego problemu ale proszę o odpowiedź

EDIT:
------
Można to zrobić jedynie przez przekazanie wartości za pomocą GET, ale nie wiemy jakiego wyniku się spodziewamy więc jest to niebezpieczne. Dlatego moim zdaniem lepiej zliczać ilość wierszy za każdym razem.
Co o tym myślicie?

Ten post edytował J4r0d 10.05.2005, 17:26:36
Go to the top of the page
+Quote Post
mario
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


Cytat(J4r0d @ 10.05.2005, 17:24 ) *
Można to zrobić jedynie przez przekazanie wartości za pomocą GET, ale nie wiemy jakiego wyniku się spodziewamy więc jest to niebezpieczne. Dlatego moim zdaniem lepiej zliczać ilość wierszy za każdym razem.
Co o tym myślicie?


oczywiscie ze $_GET latwo jest oszukac podobnie jak $_COOKIE, mozna zastosowac $_POST w polu "hidden" lub lepiej $_SESSION ale moim zdaniem po co.... Wykonanie sprawdzenia liczby komorek z tabeli trwa ulamki sekundy, a np. z $_SESSION trzeba by sprawdzic czy zmienna jest zarejestrowana (jezeli nie to ja zarejestrowac), i inne pierdoly zwiazane z zabezpieczeniem skryptu. Moim zdaniem robota nie warta zachodu... po co sobie komplikowac zycie?

Oczywiscie to byl przyklad i kazdy zrobi jak mu bedzie wygodnie i najlepiej :-)

Ten post edytował mario 12.06.2006, 22:00:49
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 03:21