Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Problem ze stronnicowaniem.
evilpr0
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.03.2011
Skąd: Glasgow

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


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.
Go to the top of the page
+Quote Post
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


  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ć


--------------------
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.
Go to the top of the page
+Quote Post
evilpr0
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.03.2011
Skąd: Glasgow

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


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.
Go to the top of the page
+Quote Post
lukaskolista
post
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


manual przyjdzie Ci z pomoca http://php.net/manual/pl/reserved.variables.request.php
generalnie nie spotkalem sie, aby jeszcze ktos uzywal $_REQUEST.



Ten post edytował lukaskolista 7.08.2011, 17:13:11
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 06:51