Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Stronnicowanie
Spyder
post
Post #1





Grupa: Zarejestrowani
Postów: 269
Pomógł: 7
Dołączył: 12.10.2006
Skąd: Newcastle Upon Tyne

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


Witam

Jakis czas temu napisalem wlasne stronnicowanie lecz skrypt nie jest idealny. Dokladnie mowiac stronnicuje wszystko ladnie wstawia numerki i guzika back i next ale jak mam np 100 stron to robi mi numerki od 1-100 co nie jest idealnum rozwiazaniem. Nie wiem jak zrobic zeby po np 5 wstawil mi kropki i na koncu ostatnia strone cos jak to:

<back 1,2,3,4,5...54 next>

a po kliknieciu w kropki kolejna 5 i tak dalej lub podobne rozwiazanie. Interesuje mnie skrypt ale nie obiektowy, cos prostego do przerowienia. Czy ktos natknol sie na cos dobrego.

Dzieki
Go to the top of the page
+Quote Post
golaod
post
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Czekasz na gotowca czy podczas myślenia nad rozwiązaniem zaciąłeś się ? Pokaż, co próbowałeś zrobić to Ci pomożemy.
Jest dział od poszukiwania skryptów.

Ten post edytował golaod 23.07.2009, 08:15:23
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Spyder -> pobaw się z instrukcjami warunkowymi, sprawdzaj ile jest stron itp.
Popróbuj , jak coś nie wyjdzie -> pokaż kod.

Hmmm skoro prosisz o skrypt to przeniosę .
Go to the top of the page
+Quote Post
Kojak
post
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

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


Napisałem coś takiego... może ci się przyda. Tablica $strona przechowuje tablicę z numerami stron, a stała $ilosc_wypisanych określa ile wypisujemy stron, a resztę kropkujemy.

Plik strona.php
  1. <?
  2. //Tworzymy tablicę $strona
  3. $strona = array();
  4.  
  5. // Dla przykładu przypiszę jej nr strony do indeksu tablicy
  6. for ($i = 0 ; $i < 50 ; $i++)
  7. {
  8.  $nr = $i + 1;
  9.    $strona[$i] = $nr;
  10. }
  11.  
  12.  
  13. $ilosc_stron = count($strona); // Skoro mamy tablicę to zliczamy ilość stron
  14. $ilosc_wypisanych = 9; // ilość stron wypisanych (resztę kropkujemy)
  15.  
  16.  
  17. // Pobieranie aktualnie wybranej strony
  18. if (isset($_GET['akt_str'])) $akt_str = $_GET['akt_str'];
  19. else $akt_str = 1;
  20.  
  21.  
  22. // Teraz sprawdzamy od której ($start) do której ($end) strony wyświetlimy adresy stron
  23. if ($akt_str==1) { $start = 1; $end = $start + $ilosc_wypisanych - 1; }
  24. else if ($akt_str==$ilosc_stron) { $end = $ilosc_stron; $start = $end - $ilosc_wypisanych + 1; }
  25. else
  26. {
  27.    $start = $akt_str-1;
  28.    $end = $akt_str+1;
  29.    $ilosc_iter = 3; // liczba, jedna przed i jedna po
  30.    
  31.    for ( ; ; )
  32.    {
  33.        
  34.        if ($end<$ilosc_stron && isset($strona[$end])) { $end++; $ilosc_iter++; }
  35.        if ($ilosc_iter == $ilosc_wypisanych) break;
  36.        if ($start>1 && isset($strona[$start-1])) { $start--; $ilosc_iter++; }
  37.        if ($ilosc_iter == $ilosc_wypisanych) break;
  38.    }
  39. }
  40.  
  41.  
  42. // Sprawdzanie czy będziemy pokazywać kropki (...)
  43. if ($start==1) $pokaz_start = false;
  44. else $pokaz_start = true;
  45. if ($end == $ilosc_stron) $pokaz_end = false;
  46. else $pokaz_end = true;
  47.  
  48.  
  49. // Właściwa pętla wyświetlająca strony
  50. for ($i = 0 ; $i < $ilosc_stron ; $i++)
  51. {    
  52.    if ($i == 0 && $akt_str != 1 && $pokaz_start)
  53.        $pokaz1 = true;
  54.    else $pokaz1 = false;
  55.    
  56.    if ($i == $ilosc_stron-1 && $akt_str != $ilosc_stron && $pokaz_end)
  57.        $pokaz2 = true;
  58.    else $pokaz2 = false;
  59.    
  60.    // pierwsza iteracja więc wypisujemy Back
  61.  if ($i == 0)
  62.  {
  63.        if ($akt_str>1)
  64.            $back_str = $akt_str - 1;
  65.        else $back_str = $akt_str;
  66.        
  67.        echo "<a href=\"strona.php?action=back&akt_str=$back_str\">Back</a> | ";
  68.  }
  69.    
  70.    if ($pokaz1) echo " ... | ";
  71.  
  72.    if ($strona[$i] >= $start && $strona[$i] <= $end)
  73.    {
  74.        if ($akt_str == $strona[$i]) echo $strona[$i]." | ";
  75.        else echo "<a href=\"strona.php?akt_str=".$strona[$i]."\">".$strona[$i]."</a> | ";
  76.    }
  77.    
  78.    if ($pokaz2) echo " ... | ";
  79.  
  80.    // ostatnia iteracja więc wypisujemy Next
  81.  if ($i == $ilosc_stron - 1)
  82.  {
  83.        if ($akt_str<$ilosc_stron)
  84.            $next_str = $akt_str + 1;
  85.        else $next_str = $akt_str;
  86.        
  87.        echo "<a href=\"strona.php?action=next&akt_str=$next_str\">Next</a>";
  88.  }
  89. }
  90.  
  91. echo "<br /><br />";
  92. echo "Aktualnie wybrany numer srony: <strong>$akt_str</strong>";
  93.  
  94. ?>


Ten post edytował Kojak 23.07.2009, 09:44:52
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: 23.12.2025 - 22:16