![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 13 Dołączył: 16.03.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam zamiar napisac forum korzystajace z bazy MySQL (wczesniej napisalem kilka malych for na plikach).
Gdy pisalem forum oparte o pliki (odpowiedzi byly w tablicy z pliku) to aby dzielic posty na strony robilem tak: $posty - tablica sekwencyjna z postami pobrana z pliku $odp_na_str - ilosc odpowiedzi na jednej stronie $_GET['strona'] - numer strony wyslany przez klienta (poczawszy od 0)
W przypadku gdy posty sa w tablicy to byl to chyba najlepszy i najszybszy sposob na pobranie konkretnej ilosci postow dla konkretnej strony. Natomiast gdy mam korzystac z bazy to widze kilka sposobow na pobranie kilku wierszy, ale kazdy ma jakas wade. posty - nazwa tabeli w ktorej kazdy wiersz zawiera dane odpowiedzi $odp_na_str - ilosc odpowiedzi na jednej stronie $_GET['strona'] - numer strony wyslany przez klienta (poczawszy od 0) SPOSOB 1.
powyzszy sposob sprawdza sie gdy kolumna post_id jest kluczem podstawowym typu AUTO_INCREMENT zaleta tego rozwiazania jest mala ilosc pobieranych zasobow wada jest to, ze nie mozna usuwac odpowiedzi z bazy SPOSOB 2.
powyzszy sposob jest bardziej uniwersalny, ale pobiera cala tabele z bazy Czy jest jakis inny lepszy sposob dzielenia postow z bazy na strony w przypadku takiego prostego forum (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
tak. W zapytaniu stosujesz klauzulę LIMIT, która pozwala wybrać rekordy z konkretnego przedziału. musisz jedynie zadbać o przezkazanie numeru strony.
Pozdrawiam. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 13 Dołączył: 16.03.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Czyli taki kod bedzie najwydajniejszy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Dzieki za pomoc, pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:50 |