Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

12 Stron V  « < 8 9 10 11 12 >  
Reply to this topicStart new topic
> Pager (stronicowanie), klasa, php4 i php5
northwest
post
Post #181





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


Witam serdecznie,
cosik nie chce mi zadziałać ta klasa.Napisałem taki kod:
  1. $recordsCount = 11;//pobranie liczby rekordów
  2. $start = null;
  3. $end = null;
  4. try{
  5. //$pager = new Pager('idPagera');
  6. //$pager = new Pager('idPagera', null);
  7. $pager = new Pager ($_GET['id'], "listaobiektow,".$_GET['k1'].",#PAGE#,#PAGE#,".$_GET['k4'].",".$_GET['k5'].".html");
  8. $pager->RecordsPerPage = 2;
  9. $pager->SetTotalRecords($recordsCount);
  10. $pager->Make(true);
  11. $pag = $pager->Render();
  12. $start = $pager->GetIndexRecordStart();
  13. $end = $pager->GetIndexRecordEnd();
  14. }
  15. catch (Exception $e) {
  16. echo $e->getMessage();
  17. }
  18. $zapytanie_wyswietlajacelista .= " ORDER by $sortujemy LIMIT ".$start.','.($end - $start + 1);
  19. $wyswietlamyliste2 = mysql_query($zapytanie_wyswietlajacelista);
  20. echo $zapytanie_wyswietlajacelista."----".$recordsCount;


Link otrzymuje w prawidłowej formie, tj:
listaobiektow,2,4,4,,.html
listaobiektow,2,6,6,,.html
itp.

tylko nie wiem czemu nie przechodzi to na zapytanie ($zapytanie_wyswietlajacelista) - bez względu czy kliknę na "1", "5" czy "10" na pagerze:
  1. SELECT * FROM cms_obiekty ORDER BY special DESC LIMIT 0,2



Wie ktoś może co zrobiłem nie tak?

Go to the top of the page
+Quote Post
nospor
post
Post #182





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




zrob print_r($_GET); gdy bedziesz na jakiejs stronie i powiedz co dostales.
Smiem twierdzic, ze skoro zrobiles ladny url, to nie zwracasz w GET atrybutu 'page' (IMG:style_emoticons/default/smile.gif) A niestety pager sam z siebie sie nie domysli co u ciebie jest stroną - on oczekuje parametry 'page'. Jak go nie to go nie ma i juz (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
northwest
post
Post #183





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


  1. Array ( [gt_id] => listaobiektow [k1] => 2 [k2] => 6 [k3] => 6 [k4] => [k5] => [modrw] => )


mam coś takiego (IMG:style_emoticons/default/winksmiley.jpg)
nie ma u mnie zmiennej page....
to: const PAGE = 'page'; wystarczy że zamienię na k2 i bedzie si?
Go to the top of the page
+Quote Post
nospor
post
Post #184





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




Nie, stalych sie nie zmienia! (IMG:style_emoticons/default/smile.gif)

To masz zmienic/ustawic:
public $GeneralParamPageNumber = 'page';
oraz ustaw 3 parametr konstruktora na true:
$pager = new Pager ($_GET['id'], "listaobiektow,".$_GET['k1'].",#PAGE#,#PAGE#,".$_GET['k4'].",".$_GET['k5'].".html",true);

edit:
w sumie wystarczy jak tylko zmienisz na to:
$pager = new Pager ($_GET['id'], "listaobiektow,".$_GET['k1'].",#PAGE#,#PAGE#,".$_GET['k4'].",".$_GET['k5'].".html",'k2');
I nic juz wiecej nie musisz zmieniac
Go to the top of the page
+Quote Post
northwest
post
Post #185





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


działa, dzięki wielkie:)))

ps. gdybym chciał ostylować to, to w którym miejscu najelpiej to zrobić (numerki i strzałki)?
Go to the top of the page
+Quote Post
nospor
post
Post #186





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




1) Albo odbierz tablicę pagera i rob z nią co chcesz
Metoda GetArray() wywolana po Make()
2) Nadpisz metodę toString() w klasie dziedziczacej
przyklad ex_with_extends.php
3) Podaj callbacka
przyklad ex_with_extern.php

Do wyboru do koloru (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
northwest
post
Post #187





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


echo "<b>".$pag ."</b> z ".$pager->GetTotalPages(); - mam takie wywołanie...

Kazda strona miałaby wyglądać następująco:
<b><a href="listaobiektow.html"></b>
a strona "wytłuszczona" - tj aktualnie oglądana (lub też domyślna) tak:
<b id="strony1"><a href="listaobiektow.html"></b>

nie da się tego jakoś prościej zrobić?
Go to the top of the page
+Quote Post
nospor
post
Post #188





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




Cytat
nie da się tego jakoś prościej zrobić?

Nie.
Na standardzie dałem taki wyglad jaki dalem. Jak się nie podoba to trzeba zrobic jeden z trzech kroków, które podalem. Robisz to raz i masz juz (IMG:style_emoticons/default/smile.gif)
Od biedy mozesz sie wbic w kod klasy i bezposrednio w kodzie klasy zmienic.
Go to the top of the page
+Quote Post
northwest
post
Post #189





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


zrobiłem sobie takie coś (walcze z klasą):
  1. protected function createHTMLLink($title, $link, $text) {
  2. return '<b><a title="'.$title.'" href="'.$link.'">'.$text.'</a></b>';
  3. }
  4. protected function createHTMLLink2($title, $link, $text) {
  5. return '<b id=\"strony1\"><a title="'.$title.'" href="'.$link.'">'.$text.'</a></b>';
  6. }


w którym miejscu podmienić aktualny numerek (aktualnie wybraną stronkę) ażeby budować link w oparciu o tą 2 funkcje?
Go to the top of the page
+Quote Post
nospor
post
Post #190





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




Cytat
w którym miejscu podmienić aktualny numerek (aktualnie wybraną stronkę) ażeby budować link w oparciu o tą 2 funkcje?
NIe rozumiem pytania
Go to the top of the page
+Quote Post
northwest
post
Post #191





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


generalnie chciałbym efekt taki uzyskać:
  1. <a><b><a href="plik1.html">1</b></a>
  2. <a><b><a href="plik2.html">2</b></a>
  3. <a><b id="strony1"><a href="plik3.html">3</b></a> <!-- aktualnie oglądana stronka -->
  4. <a><b><a href="plik4.html">4</b></a>


i kombinowałem z tą funkcją dla aktualnie zaznaczonej:
  1. protected function createHTMLLink2($title, $link, $text) {
  2. return '<b id=\"strony1\"><a title="'.$title.'" href="'.$link.'">'.$text.'</a></b>';
  3. }


dobrze kombinuje?(IMG:style_emoticons/default/winksmiley.jpg)
nie wiem czy dobrze wytłumaczyłem o co mi chodzi??(IMG:style_emoticons/default/smile.gif)

Ten post edytował northwest 30.11.2010, 15:35:57
Go to the top of the page
+Quote Post
nospor
post
Post #192





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




No ale po co tworzysz metode createHTMLLink2? Powiedzialem, ze skoro za duzo masz zachodu to nadpisz zmien kod w klasie i juz.
Go to the top of the page
+Quote Post
northwest
post
Post #193





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


zadziałało, dzięki WIELKIE (IMG:style_emoticons/default/smile.gif) ))
Go to the top of the page
+Quote Post
Ziom73
post
Post #194





Grupa: Zarejestrowani
Postów: 140
Pomógł: 1
Dołączył: 8.04.2009
Skąd: Polanica Zdrój | Poznań | Wrocław

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


Mi wywala:
Kod
Fatal error: Uncaught exception 'Exception' with message 'Method GetIndexRecordStart() You must call after Make()' in /opt/lampp/htdocs/infusions/pager/Pager.class.php:218 Stack trace: #0 /opt/lampp/htdocs/php/adm/not.php(38): Pager->GetIndexRecordStart() #1 /opt/lampp/htdocs/themes/EasyRound/administration/theme.php(163): include('/opt/lampp/htdo...') #2 /opt/lampp/htdocs/sys/adm/not.php(12): include('/opt/lampp/htdo...') #3 {main} thrown in /opt/lampp/htdocs/infusions/pager/Pager.class.php on line 218

Oto kod:
Kod
require('./../../infusions/pager/Pager.class.php');
$sql = 'select count(*) from `note`';
   $result = mysql_query($sql);
   $row = mysql_fetch_array($result);
   $recordsCount = $row[0];//pobranie liczby rekordów
   $pager = new Pager('idPagera');
   $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów
   $renderPager = $pager->Render();
   $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego
   $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego
   //zapytanie z uwzglenieniem stronicowania
   $sql = 'select * from `note` limit '.$start.','.($end - $start + 1);
   //...pobranie wyników i ich wyswietlenie
   echo $renderPager; //wyswietlenie pager'a
Go to the top of the page
+Quote Post
nospor
post
Post #195





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




Przeczytałeś chociaż komunikat błędu?
Zjadłeś wywołanie funkcji Make(). Przejrzyj przykłady dołączone do paczki - tam masz napisane jak wywoływać
Go to the top of the page
+Quote Post
Ziom73
post
Post #196





Grupa: Zarejestrowani
Postów: 140
Pomógł: 1
Dołączył: 8.04.2009
Skąd: Polanica Zdrój | Poznań | Wrocław

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


Dzięki. Trochę przerobiłem to i działa. Mogłeś bardziej wyróżnić tekst o tym, że to w pierwszym poście nie dotyczy nowej wersji.
Co do skryptu, to jest spoko (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
br0nks
post
Post #197





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 13.01.2011

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


Witam,

fajna sprawa z tym:) aczkolwiek mam pewien problem...

1) wyswietla mi jak powinno:
1 2 3 4 5 6 7 8 9 10 11 > >> >|

a chcialbym aby bylo napisane zamisat: ">|" 230 - lub aktualny numer ostatniej strony:
1 2 3 4 5 6 7 8 9 10 11 z 230 > >> 230


a kolejny problem jest taki, ze nie wiem dokladnie o co chodzi, ale moja strona ma tak, ze 1 strona nie ma id=1 tylko id=0
i przez to wchodzac na strone 2 (id=2) wchodzi mi strona 3, bo skoro ja mam pierwsza strone jako id=0 to chcac niechcac tak sie dzieje...

jak zmienic aby moja strona 1, ktora jest id=0 byla tym poprawnym id=1 ?

pozdrawiam:)

EDIT:

  1. <?
  2. //Ładowaniu pliku konfiguracyjnego bazy danych i połączenie z bazą
  3. include "config.php";
  4.  
  5. //Ustalenie ilości wyświetlanych newsów na stronie
  6. define('limit_newsow', 15);
  7.  
  8. $result = "SELECT SQL_CALC_FOUND_ROWS * FROM newsy ORDER BY id DESC, id DESC LIMIT ".mysql_escape_string((int)$_GET['s'] *limit_newsow).",".limit_newsow;
  9.  
  10. //Pobiera ilosc_newsow rekordów z bazy, sortując wg daty rosnąco, zaczynając od $_GET['s']*ilosc_newsow
  11. $RES = mysql_query($result); // wykonujemy zapytanie
  12. while($AFR = mysql_fetch_assoc($RES)){
  13.  
  14. /*Wyświetlanie wyników:*/
  15.  
  16. $id=''.$AFR['id'].'';
  17. $text=''.$AFR['text'].'';
  18.  
  19.  
  20. echo "$id - $text";
  21.  
  22. }
  23.  
  24. ?>


a dokladnie tu:
Kod
$result = "SELECT SQL_CALC_FOUND_ROWS * FROM newsy ORDER BY id DESC, id DESC LIMIT ".mysql_escape_string((int)$_GET['s'] *limit_newsow).",".limit_newsow;

jest jakis blad, ze gdy ide na id=1 to pokazuja mi sie rekordy kolejne (z id=2)..
a chcialbym aby pod id=1 byly te, ktore sa aktualnie..

a dokladnie:
Kod
id DESC LIMIT ".mysql_escape_string((int)$_GET['s'] *limit_newsow).",".limit_newsow;

ale nie wiem jak nawet tu pokombinowac, aby bylo dobrze..

prosze o pomoc:(

EDIT2:

moze tu chodzi o to, ze wyciagam wg ID? a np kilka id nie ma, bo usuniete zostaly.. i np pomija mi przez to jedna strone?
jak zrobic, zeby zliczal poprawnie? bo np teraz mam 23 strony niby.. z czego 23 jest pusta..

wszystkie wskazowki bylyby mega pomocne!

Ten post edytował br0nks 28.02.2011, 02:27:52
Go to the top of the page
+Quote Post
nospor
post
Post #198





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




Skoro piszesz w temacie, o mojej klasie Pager, to mógłbyś chociaż z niej skorzystać, a dopiero potem pisać, że masz problem
Skoro nie zamierzasz korzystać (nikt ci przecież nie karze) to nie pisz w tym wątku - słyży do zupełnie czego innego.

Bo sam już nie wiem czy ty korzystasz czy nie. Bo pierwsza Twoja wypowiedź świadczy, że niby korzystasz, ale zaraz potem pokazujesz kod, który ewidentnie pokazuje, że nie korzystasz.
Go to the top of the page
+Quote Post
br0nks
post
Post #199





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 13.01.2011

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


korzystam:)

ten kod sluzy mi tylko do wyświetlania newsów.. a jest taki, bo mialm tam inna paginacje, z ktorej zrezygnowalem, na rzecz tej.

takze prosze nadal o pomoc.
Go to the top of the page
+Quote Post
nospor
post
Post #200





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




No to pokaż kod, co do którego masz pytanie i który zawiera moje stronicowanie, bo już nie wiem o co pytasz (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

12 Stron V  « < 8 9 10 11 12 >
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: 26.08.2025 - 17:48