Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z podzialem na podstrony
koszar
post 15.11.2004, 21:43:19
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2004
Skąd: Słupca

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


witam!
napisalem pewno wyszukiwarke i chcialem napisać dzielenie na strony

  1. <?php
  2.  
  3. $where = trim(strip_tags($_GET[q])); // _GET[q] = zapytanie
  4. $bywhat = trim(strip_tags($_GET[s])); // _GET[s] = sortowanie
  5. $page = trim(strip_tags($_GET[p])); // _GET[s] = strona wynikow
  6. $wspolczynnik = &#092;"20\"; // ilosc rekordow na jednej stronie
  7.  
  8. switch($bywhat) {
  9. case r: $sort=&#092;"aaaa\"; $type=\"DESC\"; break;
  10. case n: $sort=&#092;"bbbb\"; $type=\"ASC\"; break;
  11. }
  12.  
  13. if($page==0)
  14. $pageTyl = 0;
  15. else
  16. $pageTyl = $wspolczynnik*$page-$wspolczynnik;
  17.  
  18. if($page==0)
  19. $pagePrzod = $wspolczynnik-1;
  20. else
  21. $pagePrzod = $page*$wspolczynnik-1;
  22.  
  23. $zapytanie = &#092;"SELECT * FROM tabela WHERE (pole1 LIKE '%$where%') OR (pole2 LIKE '%$where%') OR (pole3 LIKE '%$where%') ORDER BY $sort $type LIMIT $pageTyl,$pagePrzod\";
  24.  
  25. ?>


pomijam juz polaczenie z baza wkonanie zapytania, itd.....

sterowanie stronami wyników odbywa sie przez zmienna $page , potem tam sie przelicza dolna i górna granica LIMIT....
z tego co widze to limit wykouje się poprawnie, ale na kolejnych podstronach $page=2, $page=3, itd. na stronie zamiast 20 wyników wyświetlają się kolejno 40, 60, 80 mimo, że limit wskazuje np. LIMIT 20,39 lub LIMIT 40,59

nie wiem... może coś sam źle zrobilem... może czegoś nie uwzględnilem.... macie jakieś pomysly ?

pozdr. smile.gif
Go to the top of the page
+Quote Post
Kuziu
post 15.11.2004, 22:10:21
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Może Ci dam przyklad mojego kodu .. może to Ci pomoże ...

  1. <?php
  2.  
  3. $per_page = 20; // 20 na strone
  4. if(!$page){$page=0;}else{$page--;} // jeśli nie ma podanego to 0 jeśli jest to odejmij 1 ... liczymy od zera
  5.  
  6. $od=$page*$per_page; // mnożenie przez ilośc na storne
  7.  
  8. $sql =&#092;"SELECT * FROM news ORDER by time DESC LIMIT $od,$per_page\";
  9. $result =@mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  10.  
  11. ?>


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
czachor
post 15.11.2004, 22:24:29
Post #3





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Cytat
wyświetlają się kolejno 40, 60, 80 mimo, że limit wskazuje np. LIMIT 20,39 lub LIMIT 40,59
  1. LIMIT pozycja_startowa, ile_kolejnych
czyli
  1. LIMIT 20, 10
wybierze Ci 10 kolejnych wpisów zaczynając od 20go...
ile_kolejnych to nie jest numer ostatniej pozycji, ale przesunięcie,


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
koszar
post 16.11.2004, 17:37:09
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2004
Skąd: Słupca

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


to wszystko wyjaśnia.... skrypt byl dobry ! potem już kombinowalem z nim tylko przez to, że źle skonstruowalem zapytanie sql.

DZIEKI WIELKIE ! winksmiley.jpg

Ten post edytował koszar 16.11.2004, 17:37:46
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: 2.07.2025 - 13:31