Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Problem ze stronnicowaniem.
Forum PHP.pl > Forum > PHP
evilpr0
Witajcie! Podejrzałem gdzieś kod ze stronnicowaniem na internecie, pierwsza lepsza strona znaleziona na google. Wrzuciłem go do siebie i przerobiłem według własnych upodobań (tabele, bazę itd.), ale mam teraz problem. Kod wygląda tak:

  1. $START_STRONY = 1;
  2. $NA_STRONE = 10;
  3.  
  4. if (is_numeric($_REQUEST['p'])) {
  5. $STRONA = (int) $_REQUEST['p'];
  6. if ($STRONA < 1) {
  7. $STRONA = 1;
  8. }
  9. } else {
  10. $STRONA = 1;
  11. }
  12.  
  13. $START = ($STRONA - 1) * $NA_STRONE;
  14.  
  15. $POBIERANIE_STRONY = "SELECT * FROM Komentarze WHERE ID=$ID LIMIT $START, $NA_STRONE";
  16. $WYSWIETLANIE_STRONY = mysql_query($POBIERANIE_STRONY);
  17.  
  18. while($WYSWIETL_KOMENTARZE=mysql_fetch_array($WYSWIETLANIE_STRONY)) {
  19. //TUTAJ MAM WYŚWIETLANIE
  20. }


Mój link wygląda tak:
Cytat
/index.php?pokaz=wpis&id=2

Jak widzicie, tutaj powinno być od razu dodatkowo &p= (tu numer strony), ale nie ma.. Wyświetla się tylko jeden wynik, mimo tego, że mam ich 14. Jak sam dodam do linku &p=1 lub inny numer, to wszystkie wyniki po prostu znikają. Nie mam pojęcia o co tu chodzi. Czytałem mnóstwo poradników na temat stronnicowania i jest to pierwsza rzecz, której nie zrozumiałem mimo dużej ilości prób podchodzenia do niej. Liczę na waszą pomoc. wink.gif Pozdrawiam, Evil.
r4xz
  1. SELECT * FROM Komentarze WHERE ID=$ID LIMIT $START, $NA_STRONE

ID nie jest czasem indeksem?

PS przy $_GET['p'] == 1 na pierwszy rzut oka powinno działać
mortus
W linii 8 masz dodatkowy nawias. Poza tym nie widzę kodu odpowiedzialnego za generowanie linków. Podczas pierwszego wejścia na stronę jej numer (u Ciebie p) wcale nie musi być ustawiony i należy przyjąć, że jest równy 1. Można posługiwać się mniejszą tablicą $_GET, zamiast $_REQUEST. Poniższy kod przedstawia wykrywanie numeru strony:
  1. $na_stronie = 10;
  2. if(isset($_GET['p']) && $_GET['p'] != '' && is_numeric($_GET['p'])) {
  3. $strona = $_GET['p'];
  4. } else {
  5. $strona = 1;
  6. }
  7. // przeliczamy offset do zapytania SQL
  8. $start = ($strona - 1) * $na_stronie;


Potem następuje pobieranie i wyświetlanie danych (co masz zrobione), a jeszcze później wyświetlanie odnośników (i tego brakuje).
Przeszukaj tematy na forum o stronicowaniu, a z pewnością znajdziesz odpowiedź i będziesz wiedział, jak to zrobić.

@up Sprostuję pytanie. Czy ID nie jest przypadkiem kluczem głównym w tabeli Komentarze? Jeśli tak, to chyba nie o tę kolumnę Ci chodzi.
evilpr0
Odnośniki zamierzałem zrobić później, jak będzie działało. Co do ID, mój błąd.. zrobiłem pomyłkę pisząc ID, jest to faktycznie klucz. Miało tam być wID, czyli ID wpisu, pod który podpisany jest komentarz. Moje niedopatrzenie. closedeyes.gif

Zmieniłem też $_REQUEST na $_GET, chociaż nie do końca wiem czym się różnią. W każdym razie dzięki chłopaki! Pozdrawiam. Temat do zamknięcia.
lukaskolista
manual przyjdzie Ci z pomoca http://php.net/manual/pl/reserved.variables.request.php
generalnie nie spotkalem sie, aby jeszcze ktos uzywal $_REQUEST.

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.