Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP nowe strony :>
Forum PHP.pl > Forum > PHP
plej
Witam:)
bo potrzebuje skrypt gdzie mam stronę i przykładowo mam 20 jakiś artykułów i wiadomo jak by były one długie to strona na dol by sie ciągnęła a taka strona to nie jest najfajniejsza:) a więc może ktoś mi napisać lub podpowiedzieć parę rzeczy jak napisać zęby skrypt wyświetlał 10 artykułów na stronie i na dole było :
np. pierwsza strona 1 2 3 4 5 ostatnia strona ? i zęby nie trzeba było tworzyć plików osobnych dla każdej strony porostu zęby się to wykonywało w tej samej stronie smile.gif oczywiście wyniki będzie pobierać z bazy danych:)
bo nie wiem jak to napisać:/ zastanawiałem się nat tym sporo czasu i nic sad.gif


Z góry dziękuje smile.gif
mat-bi
Ludzei, ostatnie tematy - paginacja, STFG.
plej
A no tak paginacja to się nazywa:)

-------------------------------------> Ciąg dalszy haha.gif <-------------------------------------


Żeby nie zaczynać nowego tematu wrzucę tutaj:

  1. <?php
  2. //.... polaczenie itd.
  3. $subpage = $_GET['page']; // przełaczanie między stronami
  4. $perPage = 5; // ile ma być rekordów na stronie
  5.  
  6. // teraz sprawdżmy czy zmienna subpage istnieje oraz czy jest zmienną liczbową
  7. if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))
  8. {
  9. $subpage = (int) $_GET['subpage'];
  10. }
  11.  
  12. // czas na instrukcje warunkowe, Jeżeli $subpage jest mniejsza od 1 przypisz jej 1
  13. if ($subpage < 1)
  14. {
  15. $subpage = 1;
  16. }
  17.  
  18. // czas na $start. Musimy coś przypisać. W tym przypadku jest to iloraz $ subpage i liczny 1 pomnożony przez $perPage
  19. $start = ($subpage - 1) * $perPage;
  20.  
  21. // nadeszła kolei na odczytanie z odpowiedniej bazy danych rekordów, posortowanie ich oraz ustawieniu limitu poprzez zmienne
  22. $zapytanie = 'SELECT * FROM paginacja ORDER BY id DESC LIMIT '.$start.', '.$perPage.'';
  23. $idzapytania = mysql_query($zapytanie);
  24.  
  25. // teraz musimy sprawdzić czy $_GET['id'] istnieje, przy czym filtrujemy zmiene funkcją mysql_real_escape_string
  26. if(mysql_real_escape_string((!isset($_GET['id'])) or empty($_GET['id'])))
  27. {
  28. // w tym miejscy następuje wyświetlenie rekordów
  29. while ($wiersz = mysql_fetch_array($idzapytania))
  30. {
  31. $tytul = $wiersz["tytul"];
  32. echo 'cossss '.$tytul.'<br>';
  33. }
  34. // teraz musimy przypisac warunki zmiennych, aby móc na nich dalej pracować
  35. $prev = $subpage - 1;
  36. $next = $subpage + 1;
  37. $prevlink = 'paginacja.php?page='.$prev;
  38. $nextlink = 'paginacja.php?page='.$next;
  39. // w tym momencie sprawdzamy ile jest rekordów. Jest nam to potrzebne do zaokrąglenia ich ilości, aby strony prawidłowo sie wyświetlały
  40. $ilosc_wierszy = mysql_num_rows($idzapytania);
  41. // po raz kolejny czas na instrukcje warunkowe. W tej sprawdzamy czy $subpage jest większa od 1. Jeśli jest pokaże się nam tekst Poprzednia strona z odpowiednim linkiem
  42.  
  43. if ($subpage > 1)
  44. echo '<a style="text-decoration: none;" href="'.$prevlink.'">Poprzednia strona</a>';
  45. }
  46. //przyszła kolej na zaokrąglenie ilości stron
  47. $stron=round($ilosc_wierszy/$perPage);
  48. // w tym momencie nadszedł czas na pętle for, której warunkiem jest do $i przypisaniem na początku liczby jeden
  49. //Warunkiem końcowym jest liczba stron większa bądż równa. Warunkiem iterachi jest zwiększony licznik wywołań
  50. for($i=1; $i<=$stron; ++$i)
  51. {
  52. //Nadeszła kolej na instrukcje warunkową sprawdzająca czy $i jest równa $subpage. Jeśli tak to po prostu wyświeli się numer strony bez odnośnika
  53. if($i==$subpage)
  54. echo $i;
  55. //Jeśli tak nie jest wyświetl się numer strony z odniśniikiem
  56. else
  57. echo '<a style="text-decoration: none;" href="'.$nextlink.'">Następna strona</a>';
  58. }
  59. // zakończenie połączenia
  60. mysql_close($polaczenie);


A chodzi o to że kod działa fakt:) aleee jak jestem na page=1 nie pokazuje mi 'Następna strona' i nie wiem czemu:/ pokazuje mi cyferkę '1' snitch.gif

chciałbym żeby tez pokazywało po środku np. zeby to tak było "1 2 3 4 5 następna strona" .

Tak wiem jest wiele tematów tu o tym oglądałem prawie całe forum ( no moze półowe o paginacji ;] ) każdy ma inny skrypt i trochę tego nie ogarniam :/

Proszę o wyrozumiałośćsmile.gif


Z góry dziękuje:)
ActivePlayer
Nospor mial fajny skrypt paginacji. Poszukaj u niego na stronie. Pewnie beda tez przyklady
szmerak
No to dobra kolego.
Pierwszy błąd jaki znalazłem
$ilosc_wierszy = mysql_num_rows($idzapytania);
pobierasz tylko 5 a musisz pobrać wszystkie żeby podzielić

zamień na $sql = "SELECT count(*) as max FROM paginacja";

i poprostu $ilosc_wierszy = $row[max] dla przykladu

albo trzymaj gotowca tongue.gif
  1. <?
  2. include 'db.inc.php';
  3. $subpage = $_GET['page'];
  4. $perPage = 5;
  5. if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))
  6. {
  7. $subpage = (int) $_GET['subpage'];
  8. }
  9. if ($subpage < 1)
  10. {
  11. $subpage = 1;
  12. }
  13. $start = ($subpage - 1) * $perPage;
  14. $zapytanie = 'SELECT * FROM paginacja ORDER BY id DESC LIMIT '.$start.', '.$perPage.'';
  15. $idzapytania = mysql_query($zapytanie);
  16. $max = "SELECT COUNT(*) as max FROM paginacja";
  17. $max_query = mysql_query($max);
  18. $maxrecords = mysql_fetch_array($max_query);
  19.  
  20. if(mysql_real_escape_string((!isset($_GET['id'])) or empty($_GET['id'])))
  21. {
  22.  
  23. while ($wiersz = mysql_fetch_array($idzapytania))
  24. {
  25. $tytul = $wiersz[nazwa];
  26. echo 'cossss '.$tytul.'<br>';
  27. }
  28.  
  29. }
  30. $prev = $subpage - 1;
  31. $next = $subpage + 1;
  32. $prevLink = 'paginacja.php?page='.$prev;
  33. $nextLink = 'paginacja.php?page='.$next;
  34. $ilosc_wierszy = $maxrecords['max'];
  35. if($subpage > 1)
  36. echo'<a style="text-decoration: none;" href="'.$prevLink.'">Previours Page</a> ';
  37. $stron=ceil($ilosc_wierszy/$perPage);
  38. for($i=1; $i<=$stron; ++$i)
  39. {
  40. if($i==$subpage)
  41. echo '<b>'.$i.'</b> ';
  42. else
  43. echo '<a style="text-decoration: none;" href="paginacja.php?page='.$i.'">'.$i.' </a>';
  44. }
  45. if($subpage < $stron)
  46. echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Next Page</a>';
  47.  
  48. ?>

tylko musisz ustawnowic poloczenie z baza.
Na bank dziala poprawilem sam tongue.gif
plej
A no działa dzięki wielkie:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.