Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

12 Stron V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Pager (stronicowanie), klasa, php4 i php5
dr_bonzo
post 23.09.2005, 15:19:39
Post #21





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Heh, przeciez opisalem funkcjonalnosc tej klasy.

  1. <?php
  2. function _createLink($title, $page, $text)
  3. {
  4.  
  5. TUTAJ
  6. zamiast tworzyc linka w metodzie, przekazujesz $title, $page, $text obiektowi innej klasy odpowiedzialnego tylko za tworzenie linka. Obiekt ten przekazujesz przy tworzeniu nowego Pager. Zeby zmienic typ linkow wymieniasz tylko obiekt generujacy linki.
  7. PHP5: az sie prosi o interfejs.
  8.  
  9. }
  10. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
nospor
post 24.09.2005, 10:55:23
Post #22





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Z tą nową klasą to chyba lekka przesada. Aż tyle rzeczy w generowaniu linka nie ma, by tworzyc do tego nową klasę. Wystarczy wzbogacic funkcję _createLink o dodatkową możliwośc i to wszystko. Dojdzie maly bajer i tyle. Nie przesadzajmy.
Funkcję te wzbogace, przy odrobinie czasu jak pisalem.


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

"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
sf
post 24.09.2005, 13:03:37
Post #23





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Pierwsza klasa zwraca obiekt/tablice z danymi, ktore daja podstawe do wyswietlenia tych danych w sposob, ktory nam najbardziej odpowiada. Zamykanie kodu html w klasie, ktora `wylicza` stronicowanie jest malo uniwersalne. Jesli tworzymy juz klase to po to by ja wszedzie wykorzystac.. a nie nagle musimy grzebac w jej srodku bo np. chcemy uzyc obrazkow w szczelkach.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
AxZx
post 9.11.2005, 21:11:21
Post #24





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


czy trwaja prace nad rozbudowa skryptu?smile.gif


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
nospor
post 12.11.2005, 20:26:50
Post #25





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




NIestety nie. Powód ciągle ten sam smile.gif

Na przyszłość tego typu pytania prosze kierować na PW (wkoncu taki post nic nie wnosi do tematu. a jakby byla nowa wersj to bym ją umiescil)


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

"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
basu
post 26.12.2005, 13:12:33
Post #26





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


Czy wiecie jak zrobić/zodyfikować pagera, aby chodził na PDO?
Probuje cos wykombinować, ale opornie mi to wychodzi.
Go to the top of the page
+Quote Post
nospor
post 26.12.2005, 13:18:18
Post #27





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




pytasz juz o to tutaj: http://forum.php.pl/index.php?showtopic=39...=0&#entry218370
uwazaj, bo to podchodzi pod crossposting

PDO nie uzywalem nigdy. ale jak teraz patrze na jego zestaw funckji to jest tam wykonanie zapytania i pobieranie rekordow. nie wiem wiec w czym problem?zamiast mysql_query wywolyjuesz query PDO


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

"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
Diablos
post 26.12.2005, 14:42:40
Post #28





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


A jak zastosowac pagera przy template'ach ? Przykladowo OPT ?
Go to the top of the page
+Quote Post
nospor
post 26.12.2005, 14:50:22
Post #29





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




kurka, jakis dziwny jestem. OPT tez nie uzywalem smile.gif

Ale jak to szablon. W php tworzysz obiekt pagera, generujesz odpowiednie zapytanie tak jak podalem w przykladzie. Do szablonu przekazujesz wynik metody $pager->render(); oraz rzucasz rekordy.

No chyba ze ci ocos innego 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
basu
post 27.12.2005, 18:24:14
Post #30





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


Jednak sobie poradzilem ze stronicowaniem w PDO smile.gif
Problem polegal na tym ,ze $stmt->rowCount() nie dziala poprawnie.
Jesli poprawimy pager na:
  1. <?php
  2. //polaczenie z baza
  3. try 
  4. {
  5.  $db=new PDO('mysql:dbname=table;host=localhost','uzytkownik','haslo');
  6. }
  7. catch (PDOException $e)
  8. {
  9. echo 'Brak dostępu do baz danych: '.$e->getMessage();
  10. }
  11.  
  12. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  13. ?>
  14.  
  15.  
  16.  
  17.  
  18. <?php
  19.  
  20.  // zapytanie o ilosc rekordów
  21.  $stmt = $db->prepare( "SELECT count(*) FROM table" );
  22.  $stmt->execute();
  23.  while($row=$stmt->fetch()) { $ilosc=$row[0]; }
  24.  $recordsCount = $ilosc;//pobranie liczby rekordów
  25.  $pager = new Pager('idPagera');
  26.  $pager->setRecordsCount($recordsCount);//ustawienie liczby rekordów
  27.  //wygenerowanie pagera i zapamietanie go w zmiennej w celu 
  28.  //pozniejszego wyswietlenia
  29.  $renderPager = $pager->render();
  30.  $start = $pager->getStartRecord();//pobranie indexu rekordu początkowego
  31.  $end = $pager->getEndRecord();//pobranie indexu rekordu koncowego 
  32.  //ustawnienie zmiennej $koniec : LIMIT ($start,->$koniec<-)
  33.  $koniec = $end - $start + 1;
  34. //zapytanie z uwzglenieniem stronicowania
  35. //...pobranie wyników i ich wyswietlenie
  36. $stmt=$db->prepare("SELECT Kolumna FROM table LIMIT $start, $koniec");
  37. $stmt->execute();
  38. $stmt->bindColumn("Kolumna", $kolumna);
  39. while($stmt->fetch(PDO::FETCH_BOUND))
  40. {
  41. echo $kolumna."<br>";
  42. }
  43.  
  44.  
  45.  echo $renderPager; //wyswietlenie pager'a
  46.  
  47. ?>


to chodzi idealnie smile.gif. Polecam ten pager, dobrze sie sprawuje.

Prosze uzywac bbCode - NuLL
Go to the top of the page
+Quote Post
nospor
post 28.12.2005, 20:43:14
Post #31





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Jesli poprawimy pager na:
Ja tylko sprostuje. Tutaj ty nie poprawiles pager'a, tylko kod, który zapodaje dane do pagera i korzysta z jego danych. A dokladniej mowiac dostosowales go do PDO. Kod klasy Pager nie ulegl zadnej zmianie 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
basu
post 28.12.2005, 20:57:42
Post #32





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


w sumie racja smile.gif
ale najwazniesze ze chodzi.

Za nabijanie postow sa ostrzezenia.... - NuLL
Go to the top of the page
+Quote Post
SongoQ
post 28.12.2005, 22:42:28
Post #33





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Problem polegal na tym ,ze $stmt->rowCount() nie dziala poprawnie.

Jak bys zagladnal do manuala to bys zobaczyl ze dziala poprawnie.

Cytat
PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.


--------------------
Go to the top of the page
+Quote Post
bigZbig
post 25.01.2006, 12:22:53
Post #34





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


@nospor -> Z przeczytanych postow dowiedzialem sie ze dokonales pewnych malych poprawek w pierwotnie opublikowanej klasie. Czy klasa zamieszczona w pierwszym poscie jest aktualna wersja Twojej klasy? Jesli mam ja przetestowac to wolalbym to robic na ostatniej wersji aby sie nie zmagac z ewentualnymi, poprawionymi juz bledami.

tak. pierwszy post byl na bieząco aktualizowany (ale prosilem - na PW takie pytania ). tutaj walic uwagi, pytania dotyczace konkretnych rzeczy
---
nospor


Kilka uwag.

Styl kododwania:
Pomieszanie kodu logicznego z warstwa prezentacji np. funkcja render. Ja bym sie starał wszystko doprowadzic do postaci np. tablicy, a nastepnie stworzyl funkcje przetwarzajaca te tablice do postaci html. Uzytkownik mialby do wyboru pobranie gotowego kodu html lub np. poszczegolnych elementow ktore umieszczalby pomiedzy kodem html (np. w postaci tablicy numery stron i gotowe spreparowane urle) Formularz przechowujacy odpowiednie zmienne, niewidoczny dla uzytkownika moglby byc od razu wygenerowany - znaczy sie jego naglowek (no tu widze pewien problem ale to jest jeszcze do przemyslenia) w kazdym razie chodzi o mozliwie najwieksze wydzielenie warstwy prezentacji od warstwy logicznej. Mozna pomyslec o zrobieniu klasy dziedziczacej sluzacej tylko i wylacznie do generowania kodu html. Wtakiej sytuacji moglbys stworzyc kilka wersji klasy potomnej odpowiedzialnej za wyglad pagera. Aha kod domyslny html powinien moim zdaniem oprocz linkow do stron, zawierac tez informacje o ogolnej liczbie rekordow, liczbie rekordow na stronie i ktore to sa bo tak to czesc kodu html dostaje od razu a czesc musze sobie dorobic.

Niejednolite nazewnictwo raz $nazwa_zmiennej a innym razem $nazwaZmiennej i to bez uzasadnienia. Przynajmniej nie dojrzalem szczegolnego powodu.


Usprawnienia:
W Twojej klasie jest jeszcze jeden mankament. Nie ma mozliwosci zmiany tekstow (Strona, Nastapna strona itd.) Powinienes odpowiednie teksty przechowywac osobno np. w zmiennej publicznej - tablicy ($aTexts = array('page' => 'Strona')) - to ulatwi ustawienie wlasnych tekstow. Oczywiscie w kodzie w takim przypadku dajesz np.:
<?php
$ret .= $this->_createLink($aTexts['page'].$i, $i, $i);
?>

Podoba mi sie dolanczanie zmiennej paginatora do danego linku. Jak to juz ktos tutaj wspomnial nie ma mozliwosci tworzenia przyjaznych linkow. Mozna by rzeczywiscie stworzyc osobna klase sluzaca do formatowania urli. Oczywiscie to co masz jest rozwiazaniem domyslnym, ale oprocz tego mozna by dolaczac odpowiednie filtry (pluginy) zmieniajace format linkow.

Co do Twoich uwag ktore funkcje uzywac najpierw, a ktore pozniej. Mozna ustawic zmienna kontrolna $bIsRendered. Nie musze pisac kiedy ustawiasz jej wartosc na true. W kazdym razie jak true to przy probie wywolania fukcji z rodzaju set dajesz komunikat bledu. Analogicznie dla get.

Skoro mamy PHP5 i Ajaxa mozna pomyslec o przyszlosci - wyzwan nie brakuje a taki paginator bylby przydatnym narzedziem.

Tyle na szybcika jak cos jeszcze dostrzege to napisze.

Ten post edytował bigZbig 26.01.2006, 16:07:48


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
nospor
post 3.02.2006, 10:02:31
Post #35





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Pomieszanie kodu logicznego z warstwa prezentacji np. funkcja render. Ja bym sie starał wszystko doprowadzic do postaci np. tablicy, a nastepnie stworzyl funkcje przetwarzajaca te tablice do postaci html. Uzytkownik mialby do wyboru pobranie gotowego kodu html lub np. poszczegolnych elementow ktore umieszczalby pomiedzy kodem html (np. w postaci tablicy numery stron i gotowe spreparowane urle) Formularz przechowujacy odpowiednie zmienne, niewidoczny dla uzytkownika moglby byc od razu wygenerowany - znaczy sie jego naglowek (no tu widze pewien problem ale to jest jeszcze do przemyslenia) w kazdym razie chodzi o mozliwie najwieksze wydzielenie warstwy prezentacji od warstwy logicznej. Mozna pomyslec o zrobieniu klasy dziedziczacej sluzacej tylko i wylacznie do generowania kodu html. Wtakiej sytuacji moglbys stworzyc kilka wersji klasy potomnej odpowiedzialnej za wyglad pagera.
Juz podobne głosy padły wcześniej. To jednak faktycznie by się przydało (wczesniej mialem troche inne zdanie na ten temat). Początkowo klasą była robione w javie pod konkretny projekt w jsf, potem potrzebowalem szybko pagera w php i na szybko przerobilem. Zaowocowalo to pewnymi sztywnymi rzeczami jak ten kod html.

Cytat
Aha kod domyslny html powinien moim zdaniem oprocz linkow do stron, zawierac tez informacje o ogolnej liczbie rekordow, liczbie rekordow na stronie i ktore to sa bo tak to czesc kodu html dostaje od razu a czesc musze sobie dorobic.
To juz by zostalo rozwiazane samo, gdyby byla mozliwość wlasnej generacji html (patrz punkt wyzej). Wowczas by se kazdy smazyl jeszcze co by chcial.

Cytat
Niejednolite nazewnictwo raz $nazwa_zmiennej a innym razem $nazwaZmiennej i to bez uzasadnienia. Przynajmniej nie dojrzalem szczegolnego powodu.
Tak, to moje zwykłe niedopatrzenie.

Cytat
W Twojej klasie jest jeszcze jeden mankament. Nie ma mozliwosci zmiany tekstow
To rownież by zostalo rozwiązane przez mozliwość definiowania wlasnego html

Cytat
Co do Twoich uwag ktore funkcje uzywac najpierw, a ktore pozniej. Mozna ustawic zmienna kontrolna $bIsRendered. Nie musze pisac kiedy ustawiasz jej wartosc na true. W kazdym razie jak true to przy probie wywolania fukcji z rodzaju set dajesz komunikat bledu. Analogicznie dla get.
Sluszna uwaga.

Cytat
Skoro mamy PHP5 i Ajaxa mozna pomyslec o przyszlosci
hehe, przeginasz... winksmiley.jpg (żartuję).

Wszystkie uwagi zapisalem se w mej pamięci. jej czyszczenia nie przewiduję w najbliższym czasie winksmiley.jpg. Niestety natłok innych obowiązków i probelmów, odsuwa rozwój tej klasy w przyyyyyszłość... Ale pare osób już jej używa i nie narzeka 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
Fallout
post 28.02.2006, 05:55:16
Post #36





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


Witam,

mam problem z tym skryptem, gdyż nie wiem jak wymusić aby startował od danej fotki, bo u mnie to jest tak (co z ponizszego kodu powinno wyniknac) ze
najpierw wyswietla sie menu galerii (ostatni else), gdzie wybiera sie galerie ($gid)
po wybraniu wyswietlaja sie miniaturki i po kliknieciu na dowolna pokazuje sie pager, sek w tym ze nie wyswietla wskaznej fotki ($fid) tylko startuje od pierwszej... btw. $pid = id psa smile.gif

oto kod mojej "galerii":

  1. <?php
  2.  
  3. include 'db_engine.php';
  4.  
  5. $pid = (int)$_GET['p'];
  6.  
  7. $db = new dbengine();
  8. $db->polacz();
  9.  
  10. if(isset($_GET['gid'])and(!isset($_GET['fid'])))
  11. {
  12. $gid = (int)$_GET['gid'];
  13. $db->DoSql("SELECT galeria_katalog FROM galerie WHERE galeria_id = $gid");
  14. $kat = mysql_result($db->wynik,0,0);
  15. $dir = './zdjecia/'.$kat.'/mini/';
  16. $db->DoSql("SELECT * FROM zdjecia WHERE galeria_id = $gid AND pies_id = $pid");
  17. $res = $db->wynik;
  18. while($r=mysql_fetch_array($res))
  19. {
  20. $fname = $r['zdjecie_plik'];
  21. $fid  = $r['zdjecie_id'];
  22. $mini = $dir.$fname;
  23. //echo $fname.'<br>'.$fid.'<br>'.$mini;
  24. // sprawdza czy istnieje wpis w bazie
  25. if($fid<>0)
  26. {
  27. // sprawdza czy miniatrua istnieje
  28. if(file_exists($mini))
  29. {
  30. $link = "<a href=\"?s=galerie&amp;gid=$gid&amp;fid=$fid&amp;p=$pid\">";
  31. echo $link."<img src=\"$mini\" border=\"1\"></a>&nbsp;\n";
  32. }
  33. else // jesli nie, to ją generuje i wyswietla
  34. {
  35. echo "Brak miniatury";
  36. }
  37. }
  38. else echo "Brak wpisu w bazie dla wybranego pliku!<br>\n";
  39. }
  40. }
  41. elseif(isset($_GET['gid'])and(isset($_GET['fid']))) // pokazuje wybrane zdjecie
  42. {
  43. $gid = (int)$_GET['gid'];
  44. $fid = (int)$_GET['fid'];
  45. $db->DoSql("SELECT galeria_katalog FROM galerie WHERE galeria_id = $gid");
  46. $kat = mysql_result($db->wynik,0,0);
  47. $dir = './zdjecia/'.$kat.'/';
  48.  
  49. $db->DoSql("SELECT Count(*) FROM zdjecia WHERE galeria_id = $gid AND pies_id = $pid");
  50. $ile_zdjec = mysql_result($db->wynik,0,0);
  51. if($ile_zdjec==0)
  52. {
  53. echo "Brak zdjęć";
  54. }
  55. else
  56. {
  57. echo '<div align="center"><a href="?s=galerie&amp;gid='.$gid.'&amp;p='.$pid.'">';
  58. echo '<img src="buttony/powrotdogalerii.jpg" border="0"></a></div>';
  59. include 'pager.php';
  60. $pager = new Pager('galeria');
  61. $pager->$_recordsOnPage = 1;
  62. $pager->$_startRecord = $fid;
  63. $pager->setRecordsCount($ile_zdjec);
  64. $renderPager = $pager->render();
  65. $start = $pager->getStartRecord();
  66. $end = $pager->getEndRecord();
  67. $sql = 'SELECT * FROM zdjecia WHERE galeria_id = '.$gid.' AND pies_id = '.$pid.' LIMIT '.$start.','.($end - $start + 1); 
  68. $db->DoSql($sql);
  69. $res=$db->wynik;
  70.  
  71. while($r = mysql_fetch_array($res))
  72. {
  73. $opis = $r['zdjecie_opis'];
  74. $plik = $r['zdjecie_plik'];
  75.  
  76. echo "<br /><img src=\"$dir$plik\" border=\"1\"><br />$opis<br />";
  77. }
  78. echo $renderPager;  
  79. }
  80. }
  81. else 
  82. {
  83. $db->DoSQL("SELECT * FROM galerie WHERE galeria_id <> 4");
  84. $db->NRows;
  85. $w = $db->wynik;
  86. $n = $db->rows;
  87. while ($r=mysql_fetch_array($w))
  88. {
  89. $id  = $r['galeria_id'];;
  90. $pies = $r['pies_id'];
  91. $opis = $r['galeria_nazwa'];
  92. $img = $r['galeria_obrazek'];
  93.  
  94. $scr = "<img src=\"buttony/$img\" border=\"0\" alt=\"$opis\">";
  95. echo "<a href=\"index.php?s=galerie&amp;gid=$id&amp;p=$p\">".$scr."</a><br />";
  96. }
  97.  
  98. $db->rozlacz();
  99.  
  100. }
  101. ?>


zmienna identyfikatora fotki to $fid, moze Wy macie jakis pomysl, bo kazda proba konczy sie tym ze pager nie dziala sad.gif Narazie dziala, ale kilkanie danej miniatury
powoduje ze pager i tak zaczyna od pierwszej fotki..

mam wrazenie, ze to chyba niewykonalne bez zmiany cos w pagrze :/ a zalezy mi na czasie sad.gif no chyba ze cos ja przegapilem :/ mam nadzieje ze cos poradzicie, bo ja sie juz poddalem :]

pozdrawiam
Marcin


--------------------
Go to the top of the page
+Quote Post
nospor
post 28.02.2006, 09:21:51
Post #37





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




  1. <?php
  2. $pager->$_startRecord = $fid;
  3. ?>
To nie tak dziala smile.gif
ty nie musisz przypisywac od jakiego rekordu ma zaczynac. Wrecz nie mozesz, gdy z zmienna ta jest wyliczana na podstawie aktualnej strony i jest pozniej nadpisywana winksmiley.jpg
pomine juz fakt ze źle dobierasz się do zmiennych klasy. nie:
  1. <?php
  2. $pager->$_recordsOnPage = 1;
  3. $pager->$_startRecord = $fid;
  4. ?>


a:
  1. <?php
  2. $pager->_recordsOnPage = 1;
  3. $pager->_startRecord = $fid;
  4. ?>
Widać rożnicę?Dochodzi do tego jeszcze fakt ze nie mozesz przyspisac startRekord i skraca sie to do:
  1. <?php
  2. $pager->_recordsOnPage = 1;
  3.  
  4. ?>
smile.gif
Teraz dziala?


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

"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
Fallout
post 5.03.2006, 12:24:05
Post #38





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


Hehe, wierze na słowo bo nie wiem czemu mimo zeby mnie powiadamilo o odp to nic mi nie przyszlo wiec nie zagladalem smile.gif W miedzy czasie napisalem sobie to wszystko od nowa i nie korzystajac z Twojego pagera smile.gif Choc zostal na ksiazce gosci, gdzie sprawuje sie znakomicie smile.gif

A mój sposób? Oto on:

  1. <?php
  2.  
  3. include 'db_engine.php';
  4.  
  5. $db = new dbengine();
  6. $db->polacz();
  7.  
  8. $pid = (int)$_GET['p']; // id psa
  9. $gid = (int)$_GET['gid']; // id galerii
  10. $eid = (int)$_GET['eid']; // koniec
  11. $cid = (int)$_GET['cid']; // wybrana fotka
  12. // pobranie zdjec
  13. $lsql = 'SELECT * FROM zdjecia WHERE galeria_id = '.$gid.' AND pies_id = '.$pid;
  14. $db->DoSql($lsql);
  15. $lres=$db->wynik;
  16. // pobranie katalogu
  17. $db->DoSql("SELECT galeria_katalog FROM galerie WHERE galeria_id = $gid");
  18. $kat = mysql_result($db->wynik,0,0);
  19. $dir = './zdjecia/'.$kat.'/';
  20. $dir_mini = './zdjecia/'.$kat.'/mini/';
  21. // wypelnienie tablicy danymi
  22. $temp = array();
  23. $count = 0;
  24. while($r = mysql_fetch_array($lres))
  25. {
  26. $opis = $r['zdjecie_opis'];
  27. $plik = $r['zdjecie_plik'];
  28. $dane = array($count,$dir.$plik,$opis,$dir_mini.$plik);
  29. $temp[$count] = implode(',',$dane); 
  30. $count++;
  31. }
  32. $lista = $temp;
  33.  
  34. if(isset($_GET['gid'])and(!isset($_GET['cid']))) // wyswwietla miniatury
  35. {
  36. if($count<>0)
  37. {
  38. foreach($lista as $id)
  39. {
  40. $data = explode(',',$id);
  41. $cid = $data[0]; // id
  42. $plk = $data[1]; // plik
  43. $ops = $data[2]; // opis
  44. $min = $data[3]; // mini
  45.  
  46. if(file_exists($min))
  47. {
  48. $link = "<a href=\"?s=galerie&amp;gid=$gid&amp;eid=$count&amp;cid=$cid&amp;p=$pid\">";
  49. echo $link."<img src=\"$min\" border=\"1\"></a>&nbsp;\n";
  50. }
  51. }
  52. }
  53. else echo '<br /><img src="buttony/brakzdjec.jpg"><br /><br />';
  54. }
  55. elseif(isset($_GET['gid'])and(isset($_GET['cid']))) // pokazuje wybrane zdjecie
  56. {
  57. $dane = $lista[$cid];
  58. $data = explode(',',$dane);
  59. $cid = $data[0]; // id
  60. $plk = $data[1]; // plik 
  61. $ops = $data[2]; // opis
  62. $min = $data[3]; // mini
  63.  
  64. if(file_exists($min))
  65. {
  66. $next='';
  67.  
  68. if($cid+1<$eid)
  69. {
  70. $ncid = $cid+1;
  71. $next ='<a href="?s=galerie&amp;gid='.$gid.'&amp;p='.$pid.'&amp;cid='.$ncid.'&amp;eid='.$count.'">';
  72. $next.='<img src="buttony/nav_1a.jpg" border="0"></a>';
  73. }
  74.  
  75. $prev='';
  76.  
  77. if($cid-1>0)
  78. {
  79. $pcid=$cid-1;
  80. $prev='<a href="?s=galerie&amp;gid='.$gid.'&amp;p='.$pid.'&amp;cid='.$pcid.'&amp;eid='.$count.'">';
  81. $prev.='<img src="buttony/nav_1b.jpg" border="0"></a>';
  82. }
  83.  
  84. echo '<div align="center">'.$prev;
  85. echo '<a href="?s=galerie&amp;gid='.$gid.'&amp;p='.$pid.'">';
  86. echo '<img src="buttony/powrotdogalerii.jpg" border="0"></a>';
  87. echo $next.'</div>';
  88.  
  89. echo '<img src='.$plk.' border="1"><br /><b>'.$ops.'</b>';
  90. }
  91. }
  92. else // wyswietlenie listy galerii
  93. {
  94. $db->DoSQL("SELECT * FROM galerie WHERE galeria_id <> 4");
  95. $db->NRows;
  96. $w = $db->wynik;
  97. $n = $db->rows;
  98. while ($r=mysql_fetch_array($w))
  99. {
  100. $id  = $r['galeria_id'];;
  101. $pies = $r['pies_id'];
  102. $opis = $r['galeria_nazwa'];
  103. $img = $r['galeria_obrazek'];
  104.  
  105. $scr = "<img src=\"buttony/$img\" border=\"0\" alt=\"$opis\">";
  106. echo "<a href=\"index.php?s=galerie&amp;gid=$id&amp;p=$p\">".$scr."</a><br />";
  107. }
  108. }
  109.  
  110. ?>


I mam pytanie, czy to nie jest efektywniejsze?
Jedyna wada, ze nie ma menu 1..n, ale nastepny/poprzedni co 10 itp. latwo zrobic..
jesli oftop to usune smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.03.2006, 16:37:42
Post #39





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
I mam pytanie, czy to nie jest efektywniejsze?
Zazwyczaj zamienienie klasy na bezposredni kod jest efektywniejsze (o ile sie nic nie zepsuje po drodze winksmiley.jpg ). Klasa ma za zadanie ulatwic i przysieszyc pisanie aplikacji, a nie odkrywać ciągle wszystko na nowo. Często klasy uogolniają wiele sytuacji, przez co mozna je stosowac w szerszym zakresie, ale to powoduje zmniejszenie wydajności (w mniej lub większy sposó winksmiley.jpg )

Co do Twojego skryptu, to nie mam sily/czasu go analizowac. Ale jesli ci dziala i ci wystarcza, to uzywaj do woli winksmiley.jpg No i napewno ma zdecydowanie mniej kodu niz moja klasa 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
Legro
post 19.03.2006, 12:24:52
Post #40





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

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


witam, nie moge sobie z tym poradzic, probowalem juz z 10 kodow na stronicowanie i nic :/ z tego forum z compzone.org z forum.webhelp.pl i nie umie zadnego przystosowac.. widze ze Twoja klasa cieszy sie popularnoscia, ze tak powiem ale tez nie moge jej przystosowac.. wiec mam prosbe.. czy jestes w stanie przystosowac, nospor? ew. jak ktos inny potrafi to bardzo prosze winksmiley.jpg



moj kod jest taki:

  1. <?php
  2.  
  3. $dowcipy = mysql_query (" Select * From `dowcipy` Where `akt_d` = '1' and `kat_d` = '{$_GET['id_kat']}' ");
  4. $num_row = mysql_num_rows ( $dowcipy );
  5.  
  6. if ( $num_row != 0 ) {
  7.  
  8. while ( $r_dowcipy = mysql_fetch_array ( $dowcipy, MYSQL_ASSOC )) {
  9.  
  10. $list_dowcipy .= ( nl2br ( $r_dowcipy['tresc_d'] ) . '<br /><br />' ); 
  11.  
  12. }
  13.  
  14. $template -> setValue ('lista_dowcipow', $list_dowcipy);
  15.  
  16. } else {
  17.  
  18. $template -> setValue ('lista_dowcipow', 'Brak dowcipów w kategorii.');
  19.  
  20. }
  21.  
  22. ?>



To jest kod do wyswietlana... i chcialbym aby na stronie bylo po 10 wpisow.


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post

12 Stron V  < 1 2 3 4 > » 
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: 19.04.2024 - 06:46