Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]podział na strony
Lejto
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


szukam sktyptu podziału na strony do newsów szukałem już ale znalazłem urazmaicone kody oparte o smarty i itp. szukam prostego skryptu

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





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




szukaj pod haslem stronicowanie
U mnie w podpisie tez cos znajdziesz
Go to the top of the page
+Quote Post
Lejto
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


mówiełem że chce coś prostego na 9 linijek
Go to the top of the page
+Quote Post
Koshin
post
Post #4





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 29.04.2002
Skąd: jesteś?

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


include_once('../adodb.inc.php');
include_once('../adodb-pager.inc.php')

$rs = &$db->Execute($sql);

$pager = new ADODB_Pager($db,$sql);
$pager->showPageLinks = true;
$pager->linksPerPage = 3;
$pager->cache = 60;
$pager->Render($rows=7);


8 linijek (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
pojas
post
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

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


Może coś takiego Ci pomoże:
  1. <?php
  2. $news_per_page = 2; // newsów na stronę
  3.  
  4. if( $_GET['start'] == '' || $_GET['end'] == '' ) // jeśli parametry GET są puste
  5. {
  6. // domyślne ustawienia: strona 1
  7. $_GET['start'] = 1;
  8. $_GET['end'] = $news_per_page;
  9. }
  10.  
  11.  
  12. $articles = 19; // pobierz liczbę wszytkich newsów
  13.  
  14. // wyświetl newsy z przedziału $_GET['start'] - $_GET['end']
  15. for( $i=$_GET['start']; $i<=$_GET['end'] && $i<=$articles; $i++)
  16. {
  17. echo 'News numer '.$i.'<br />'; // wyświetl news
  18. // echo get_news( $i );
  19. }
  20.  
  21.  
  22. $pages = ceil( $articles/$news_per_page ); // ilość stron
  23.  
  24. for( $i=1; $i<=$pages; $i++ )
  25. {
  26. $end = $i*$news_per_page;
  27. $start = $end-$news_per_page+1;
  28.  
  29. if( $end == $_GET['end'] ) // wyświetla link do strony na której jest użytkownik
  30. {
  31. echo 'strona '.$i.' | ';
  32. } elseif( $end/$news_per_page == $pages ) // link do ostatniej strony
  33. {
  34. echo '<a href="test.php?start='.$start.'&end='.$end.'">strona '.$i.'</a>';
  35. } else // niżej "normalny" link
  36. {
  37. echo '<a href="test.php?start='.$start.'&end='.$end.'">strona '.$i.'</a> | ';
  38. }
  39. }
  40. ?>

Samemu napisać większa frajda (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
... no ale to skromniejsze rozwiązanie

Ten post edytował pojas 1.08.2007, 10:20:55
Go to the top of the page
+Quote Post
Lejto
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


może niewyraznie się wyraziłem chodzi mi o to że np. (zapytania mysql) jak doda się 6 newsa to utworzy sie nowa strona, moze jakis link to tym jak sie dzieli na strony

Ten post edytował Lejto 1.08.2007, 19:35:36
Go to the top of the page
+Quote Post
gilbo
post
Post #7





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

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


Linku poszukaj tak jak napisal nospor pod haslem stronicowanie.

Ja ci podam pewnego rodzaju solucje.

1. sprawdzasz za pomoca mysql_num_rows() ilosc wpisow/newsow itp.
2. sprawdzasz ile stron musisz utworzyc dzielac ilosc wpisow przez wczesniej ustalana liczbe wersow na strone.
3. ustalasz np. zmienna $_GET['page'] ktora jezeli jest pusta = 0 i wykonujesz najnormalniejsze zapytanie do sql z tym ze ustalasz limit $start, $stop gdzie $start=$_GET['page']*ilosc wpisow na strone stop=$start+ilosc wpisow na strone
4. dorabiasz jeszcze nawigacje tak zeby nie mozna bylo cofnac za $_GET['page']=0 i pojsc dalej niz za ilosc stron-1 (-1 bo pierwsza strona ma index 0)

Moze troche to trudne ale jak sie zastanowic nie powinno sprawic wiekszych klopotow:)

pozdrawiam:)

P.S prosze wybaczyc brak polskich liter ale pisze z zagranicznej klawiatury i na zagranicznym kompie:)

Ten post edytował gilbo 1.08.2007, 20:09:29
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #8





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


tutaj też masz prostą klase stronicowania rekordów.
Go to the top of the page
+Quote Post
Lejto
post
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


dzięki (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)

Ten post edytował Lejto 2.08.2007, 12:34:21
Go to the top of the page
+Quote Post
php programmer
post
Post #10





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


A żeby nie pisać dwa razy zapytania, osobno dla licznika i osobno dla danych,
najlepiej przerobić istniejące zapytanie, to przykład z jednego z z niedawno pisanego skryptu

  1. <?php
  2. $sCountQuery = str_replace("SELECT * FROM",'SELECT COUNT(*) AS cnt FROM',$sQuery);
  3. $pos = strpos($sCountQuery,'ORDER BY');
  4. if (!($pos===false)) $sCountQuery = substr($sCountQuery,0,$pos);
  5. ?>

oczywiście działa tylko na niezbyt skopmplikowanych zapytaniach

Ten post edytował php programmer 2.08.2007, 13:08:34
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:29