Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

12 Stron V  « < 6 7 8 9 10 > »   
Reply to this topicStart new topic
> Pager (stronicowanie), klasa, php4 i php5
pawel.s
post 29.01.2008, 18:27:05
Post #141





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

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


hej, oki wyswietlil mi sie poprawnie pager
dalem mu
  1. <?php
  2. $pager->SetRecordsPerPage(3);
  3. ?>

mam aktualnie 11 rekordow, jak klikam w pager na aby mi sie wyswietlily kolejne 3 rekordy to xxx.php?pp_p=2 co dalej robic... questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 29.01.2008, 21:17:19
Post #142





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
co dalej robic...
odpowiem ci jak maszyna: zapytaj inaczej lub specyzuj problem bo ni w ząb nie kumam oco ci chodzi.
Co dalej robic? idź na cole czy coś, pager zrobi za ciebie wszystko na co go stac. winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel.s
post 29.01.2008, 21:40:17
Post #143





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

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


jak chce wyswitlic kolejne 3 rekordy to pojawia mi sie xxx.php?pp_p=2 nie wiem co mam zrobic aby pager dzialal...
Go to the top of the page
+Quote Post
nospor
post 29.01.2008, 21:55:17
Post #144





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




normalnie masz jakies kosmiczne problemy.
Pokaza caly kod jaki masz.
pokaz rowniez kod html jaki ma w sobie Twoj $renderPager


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel.s
post 30.01.2008, 17:15:33
Post #145





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

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


oto moj kod :
  1. <?php
  2. switch($do){
  3. case 'show_notice':
  4.  
  5. $db = mysql_connect('localhost','root',xxxxx');
  6. mysql_select_db('xxxx',$db);
  7.  
  8. $sql = 'select count(*) from notice';
  9. $result = mysql_query($sql);
  10. $row = mysql_fetch_array($result);
  11. $recordsCount = $row[0];  
  12. $pager = new Pager('p');  
  13. $pager->SetTotalRecords($recordsCount);
  14. $pager->SetRecordsPerPage(3);
  15. $renderPager = $pager->Render();  
  16. $start = $pager->GetIndexRecordStart();  
  17. $end = $pager->GetIndexRecordEnd();  
  18. $sql = 'select * from notice limit '.$start.','.($end - $start + 1);  
  19. $result = mysql_query($sql);
  20.  
  21.  
  22. $row = array();
  23. while ($row = mysql_fetch_assoc($result)){
  24. $res[] = $row;
  25. }
  26. $res = $res;
  27. $smarty->assign('pager,$renderPager);
  28. break;
  29. }
  30. ?>


  1. <div id="p">{$pager}</div>


tak jak pisalem wysiwtlaja mi sie 3 rekordy z bazy danych nastepnie poprawnie pager
1 2 3 4 >
jak klikne w pager 2 to chce mnie przekierowac na show.php?pp_p=2 i pojawi sie Notice: Undefined variable: do in ....
Go to the top of the page
+Quote Post
nospor
post 30.01.2008, 19:15:47
Post #146





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Notice: Undefined variable: do in ....
A widzisz... brakuje ci $do, wzgledem ktorej robisz switch i pager. Zakladam ze pierwotnie $do masz w url a pager generuje ci linki bez tego $do. Pisalem juz w tym temacie jak zrobic by generowalo linki takie jak chcesz. Poszukaj.

A gdybyś skorzystal z wersji 2.5 to moglbys ustawic by sam automatycznie budowal linki z parametrami co byly w url


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel.s
post 30.01.2008, 20:24:39
Post #147





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 15.08.2007
Skąd: trojmiasto

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


nie moge kurcze tego rozgrysc w linku mam /_admin/show.php?do=show_notice
kombinowalem cos z konstruktorem ale nie chce mi to wyjsc jak to zrobic questionmark.gif

dobra poradzilem sobie dziala dzieki wielkie i pozdrawiam...
Go to the top of the page
+Quote Post
Legro
post 22.04.2008, 18:20:59
Post #148





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


Cześć @nospor

Korzystam z Twojej klasy 2.0 pod PHP4. Działa mi znakomicie, jednakże mam jeden problem. Otóż gdzie i jaki parametr powinienem dodać aby moje linki wyglądały tak:

Kod
cos.php?kategoria=3&pp=3


(gdzie kategoria=3 to id mojej kategorii, a pp=3 to numer strony)


..........EDIT
przepraszam bardzo.. ;( juz sobie poradziłem winksmiley.jpg

wystarczyło zrobić tak:

Kod
$pager = new Pager ($_GET['id'], 'cos.php?kategoria='.$_GET['id']);


Ten post edytował Legro 22.04.2008, 18:38:56


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
aasat
post 4.10.2008, 19:49:13
Post #149





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.10.2008

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


Super robota, świetna klasa, podziękowania dla autora

A teraz pytanie smile.gif
Czy jest jakiś sposób na niceurl? bo widze w TODO, ze cos ma byc z tym pomyślane
Go to the top of the page
+Quote Post
nospor
post 6.10.2008, 10:02:12
Post #150





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czy jest jakiś sposób na niceurl? bo widze w TODO, ze cos ma byc z tym pomyślane

Sek w tym, ze kazdy moze miec swoj wlasny niceUrl i sam z automata nie jestem w stanie go budowac.

W klasie Pager.class.php masz metode makeLink() (w niej masz te TODO). Funkcja ta jest wywolywana, gdy drugi parametr konstruktora jest ustawiony na null. W metodzie tej musisz dac generowanie swojego ladnego urla. Ja tak robie u siebie w projekcie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
piraciq
post 17.10.2008, 09:24:31
Post #151





Grupa: Zarejestrowani
Postów: 174
Pomógł: 4
Dołączył: 27.07.2007
Skąd: Kraków

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


Witam

ja zapodałem tą klasę do joomli i spisuje się znakomicie :]


Pozdrawiam
Go to the top of the page
+Quote Post
aasat
post 16.12.2008, 23:42:41
Post #152





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 4.10.2008

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


Niceurl można bardzo łatwo utworzyć

np chcemy aby nasze linki wyglądały tak, jeżeli pracujemy np. z Zend Framework

http://www.example.com/news/archiwum/page/1
http://www.example.com/news/archiwum/page/2
http://www.example.com/news/archiwum/page/3

itd

Najprościej uzyskać to w ten sposób

$pager = new Pager('page', '/news/archiwum/page/#PAGE#');
$pager->SetActualPage($this->_request->getParam('page'));

pozdrawiam
Go to the top of the page
+Quote Post
szumigt
post 19.02.2009, 17:51:35
Post #153





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.10.2007

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


Witam. Właśnie próbuję zastosować kod Pager-a na stronie. Wykonałem na razie taki kod
CODE

$pager = new Pager('p','product_list.php?group='.$_GET['group']);

$pager->SetTotalRecords(1587);
$pager->SetRecordsPerPage(6);

$pager->Make(true);

$start = $pager->GetIndexRecordStart();
$end = $pager->GetIndexRecordEnd();
$str->smarty -> assign('pager',$pager->Render());

function getClothes($kat,$start,$end) {

$sql='SELECT id as id_produktu, nazwa,symbol FROM produkty WHERE gr='.$kat.' LIMIT '.$start.','.($end - $start + 1);

return $db->getArray($sql); // AdoDB

}


Kod ma jeszcze małą niedogodność w postaci stałej liczby rekordów a w projekcie jest ona zmienna bo liczba artykułów z danej kategorii jest inna za każdym wygwenerowaniem strony. To jestem w stanie obejść bo wiem że trzeba wykonać zapytanie do BD o oblicznie ilości art z kategorii. Problem pozostaje jednak przy zmianie kategori i braku ustawionej zmiennej $_GET['ppp']. Wtedy przy przełączniu na inna kategorię numer strony pozostaje na tej samej wartości ... Nie wiem czy wyjaśniłem to dokładnie ... krótko mówiąc chodzi o to że przy przełączniu na inną stronę na której nie ma ustawionej zmiennej ppp numer strony pozstaje z poprzedniej. :-)

Co tutaj trza poprawić w tym kodzie ... pomożecie questionmark.gif

Ten post edytował szumigt 19.02.2009, 17:53:09
Go to the top of the page
+Quote Post
nospor
post 19.02.2009, 21:35:03
Post #154





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Kod ma jeszcze małą niedogodność w postaci stałej liczby rekordów a w projekcie jest ona zmienna bo liczba artykułów z danej kategorii jest inna za każdym wygwenerowaniem strony. To jestem w stanie obejść bo wiem że trzeba wykonać zapytanie do BD o oblicznie ilości art z kategorii
No tak, liczbe rekordow musisz wyliczac, podawalem to w przykladach

Cytat
Problem pozostaje jednak przy zmianie kategori i braku ustawionej zmiennej $_GET['ppp']. Wtedy przy przełączniu na inna kategorię numer strony pozostaje na tej samej wartości ...
Za bardzo nie wiem oco ci chodzi.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
szumigt
post 20.02.2009, 15:29:04
Post #155





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.10.2007

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


Uuuooo matko jaka pierdoła ze mnie. Już poprawiłem.
Chodziło o to że jeśli miałem linki w postaci
Link1: product.php?group=1
Link2: product.php?group=2
itd...
to przy przejściu x link1 do link2 strona pozostawała taka sama jak na link1. Ale przecież wystarczyło zrobić
product.php?group=1&ppp=1 i po zawodach. Chociaż nie wiem czemu klasa Pager nie ustawia sama w momencie kiedy nie jest zdefinowana zmienna ppp to przyjmuje stronę nr1... chyba że coś w kodzie pomieszałem.
Go to the top of the page
+Quote Post
nospor
post 20.02.2009, 19:23:34
Post #156





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Chociaż nie wiem czemu klasa Pager nie ustawia sama w momencie kiedy nie jest zdefinowana zmienna ppp to przyjmuje stronę nr1

Jak nie jest zdefiniowana to ustawia sama na 1, chyba ze juz chodziles po pagera, to wowczas pamieta stan pagera w sesji i z tego korzysta.
Jakbys dla kazdej kategorii nadawal oddzielne id dla pagera, to kazda kategoria by miala swoje wlasne pamietanie, a nie tak ja teraz korzystają z tego samego smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nieraczek
post 27.02.2009, 17:57:12
Post #157





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Mogę się zapytać po co używasz sesji w Twoim stronicowaniu ? Do zapamiętywania, na której stronie byłem ostatnio ? Bo mi to niepotrzebne. tongue.gif Czy jesli zakomentuję session_start() to narażam się na jakieś problemy ? biggrin.gif

  1. <?php
  2. //session_start();
  3. require_once('pager/Pager.class.php');
  4. $sql = 'select count(*) from wiadomosci';
  5. $result = mysql_query($sql);
  6. $row = mysql_fetch_array($result);
  7. $recordsCount = $row[0];//pobranie liczby rekordów
  8. try{
  9.    $pager = new Pager('idPagera');
  10.    $pager->SetTotalRecords($recordsCount);
  11.    $pager->Make(true);
  12.    $pag = $pager->Render();
  13.    $start = $pager->GetIndexRecordStart();
  14.    $end = $pager->GetIndexRecordEnd();
  15. }
  16. catch (Exception $e) {
  17.    echo $e->getMessage();
  18. }
  19.  
  20. //zapytanie z uwzglenieniem stronicowania
  21. $sql = 'select * from wiadomosci limit '.$start.','.($end - $start + 1);
  22. //...pobranie wyników i ich wyswietlenie
  23.    $result = mysql_query($sql) or die('blad zapytania1');
  24.  
  25.  
  26.    while($val = mysql_fetch_array($result))
  27.    {
  28.        $wiadomosc = $val['tresc'];
  29.        echo "$wiadomosc<br/><br/><br/>";
  30.    }
  31.    
  32. echo $pag;//wyswietlenie pager'a
  33.  
  34. ?>


I jeszcze gdzie i co w Pager.class.php dopisać: "Strona AKTUALNA_STRONA z LICZBA_STRON' questionmark.gif

I jeszcze mała sugestia odnośnie Twojej klasy - dodaj pogrubienie <strong> </strong> do aktualnego numeru wyświetlanej strony w klasie Pager.class.php to znaczy:
  1. <?php
  2. $_str .= '<span><strong>'.$_page.'</strong></span>';
  3. ?>


Bo bez tego nie idzie się połapać na jakiej jest sie stronie tongue.gif

Ten post edytował nieraczek 27.02.2009, 18:50:04
Go to the top of the page
+Quote Post
nospor
post 27.02.2009, 19:40:49
Post #158





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Mogę się zapytać po co używasz sesji w Twoim stronicowaniu ? Do zapamiętywania, na której stronie byłem ostatnio ? Bo mi to niepotrzebne.


  1. <?php
  2. //....
  3. $pager = new Pager('idPagera');
  4. $pager->SetUseSession(false);
  5. //.....
  6. ?>

Cytat
I jeszcze gdzie i co w Pager.class.php dopisać: "Strona AKTUALNA_STRONA z LICZBA_STRON'

  1. <?php
  2. //...
  3. echo 'Strona '.$pager->GetActualPage().' z '.$pager->GetTotalPages();
  4. echo $pag;//wyswietlenie pager'a
  5. //...
  6. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nieraczek
post 27.02.2009, 22:21:27
Post #159





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Dzięki - a nawiasem mówiąc - dopiero teraz zwróciłem uwagę na: $pager = new Pager('idPagera'); i na to, że trzeba tu podać liczbę. smile.gif

plik ze stronicowaniem:
  1. <?php
  2. require_once('pager/Pager.class.php');
  3. $sql = 'select count(*) from wiadomosci';
  4. $result = mysql_query($sql);
  5. $row = mysql_fetch_array($result);
  6. $recordsCount = $row[0];//pobranie liczby rekordów
  7. try{
  8.    $pager = new Pager(1);
  9.    $pager->SetUseSession(false);
  10.    $pager->SetTotalRecords($recordsCount);
  11.    $pager->Make(true);
  12.    $pag = $pager->Render();
  13.    $start = $pager->GetIndexRecordStart();
  14.    $end = $pager->GetIndexRecordEnd();
  15. }
  16. catch (Exception $e) {
  17.    echo $e->getMessage();
  18. }
  19.  
  20. //zapytanie z uwzglenieniem stronicowania
  21. $sql = 'select * from wiadomosci ORDER BY datadodania DESC limit '.$start.','.($end - $start + 1);
  22. //...pobranie wyników i ich wyswietlenie
  23.    
  24.    
  25.    echo "<br/>";
  26.    $result = mysql_query($sql) or die('blad zapytania');
  27.  
  28.    while($val = mysql_fetch_array($result))
  29.    {
  30.        $wiadomosc = $val['tresc'];
  31.        echo "$wiadomosc<br/><br/><br/>";
  32.    }    
  33.  
  34. echo "<div class='pomaranczowy'>";
  35. echo 'Strona '.$pager->GetActualPage().' z '.$pager->GetTotalPages();
  36. echo "</div>";    
  37. echo $pag;//wyswietlenie pager'a
  38. ?>


Drobna modyfikacja Pager.class.php:
  1. <?php
  2. public $RecordsPerPage = 5; //ilosc rekordow na stronie
  3.  
  4. .......................................
  5.  
  6. if (!$_pageLink)
  7.                $_str .= '<span class="uwypuklenie">'.$_page.'</span>';
  8.            else
  9. ?>



Dodanie paru styli i oto efekt:




Dzięki nospor - rewelacyjna jest ta Twoja klasa. smile.gif
Go to the top of the page
+Quote Post
nospor
post 27.02.2009, 22:57:39
Post #160





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i na to, że trzeba tu podać liczbę.
Skad ten pomysl? Rownie dobrze moze tam byc "alamakota". Ja osobiscie nadaje tam wlasnie nazwy tekstowe a nie liczby


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

12 Stron V  « < 6 7 8 9 10 > » 
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:30