Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Stronicowanie newsów
Forum PHP.pl > Forum > Przedszkole
artekp999
Wiem ze było pewnie to tysiące razy ale nie umiem tego zrobic na moim przykładzie.Stworzyłem swój system newsów oparty o bazę MySql. Chciałbym dodać do niego stronicowanie ale ciągle wyskakują jakieś błędy i stronicowanie nie działa.

nowe.php - plik wyświetlające newsy
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news order by id desc limit 0,5");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<a href="news.php?id='.$rekord[0].'"><div id="TYTUL">'.$rekord[1].'</div></a><div id="AUTOR"> Autor: <b>'.$rekord[3].'</b> - '.$rekord[2].'</div><div id="TRESC">'.$rekord[4].'</div><br>';
  7. }
  8. echo '<ul>'.$naz.'</ul>';
  9. ?>
Ulysess
wpierw dajesz zapytanie które zliczy wszystkie rekordy interesujące Ciebie.
Następnie dajesz zapytanie w którym w LIMICIe jako pierwszy argument podajesz od którego rekordu ma pobierać czyli $strona*wynikow_na_stronie a jako drugi argument ilosc_pobieranych_rekordow.
Pisałem z głowy więc mogłem coś pominąć..
artekp999
a możesz to przedstawić za pomocą kodu bo zbytnio nie rozumiem
Ulysess
  1. $str = abs($_GET['str']);
  2. $wns = 10;
  3. $query = mysql_query("select `id` from `news` order by `id`");
  4. $ilosc_rekordow = mysql_num_rows($query);
  5. $o = ceil($wns*$str);
  6. $q = mysql_query("select * from `news` order by `id` desc limit '".$o."','".$wns."'");
  7.  
  8. // petla w ktorej wyswietlasz dane
  9.  
Valdi_B
Niestety, musimy zacząć od "doszkolenia" w zakresie HTML:
Znaczniki '<ul>' ... '</ul>' - to początek i koniec całej listy.
Każdą pozycję listy trzeba natomiast ująć w <li> ... </li>.

Wracamy na grunt PHP:
1. W pętli zrób $naz = ... (a nie .=).
2. W instrukcji:
echo '<ul>'.$naz.'</ul>';
zmień ul na li.
3. Ta instrukcja musi być wewnątrz pętli while (a nie po niej).
4. Znaczniki <ul> i </ul> - też muszą być, ale - odpowiednio - przed pętlą while i po niej.
W ten sposób dostajesz pojedynczą stronę news'ów.

Samo stronicowanie polega właściwie na odpowiednim manipulowaniu wartościami związanymi z frazą LIMIT (którą porcję rekordów pobierasz z bazy i wyświetlasz).
Skrypt musi wiedzieć, która (w tym przypadku) piątka rekordów jest na obecnej stronie.
Przejście na poprzednią stronę - to "sięgnij poprzednią piątkę".
Przejście na następną stronę - "sięgnij następną".
artekp999
Dalej mi nie działa. Chyba będę musiał zrezygnować ze stronicowania
Valdi_B
Nie poddawaj się tak łatwo.
Zapuść w Google szukanie na "php stronicowanie".
Pierwszy link, który mi z takiego wyszukanie wyszedł to:
http://www.webmastertalk.pl/-php-mysql-str...anie-t-297.html
i zawiera przykład. Jak twierdzi autor - krótki (i ma rację).
Oprócz tego Google wyszuka Ci gromadę innych przykładów / opisów / instrukcji.
artekp999
muszę bardziej podszkolić się w PHP i MySql biggrin.gif spróbuje z tym przykładem

Edit:
Ja ciągle musze robić w czymś błąd , kazdy skrypt stronicowania co wezmę to błąd albo nie chce działac.

Zmodyfikujcie kod stronicowania do mojego systemu newsow
nekomata
Cytat(artekp999 @ 25.02.2011, 22:34:36 ) *
Zmodyfikujcie kod stronicowania do mojego systemu newsow

A może frytki do tego?Serio tutaj się POMAGA a nie odwala za kogoś brudną robotę , poza tym co z ciebie będzie za admin jak nie będziesz wiedział jak działa twoja własna strona?Bo nie uwierzę w to że będziesz się nad tym zastanawiał po otrzymaniu działającego kodu.Wolontariat w innym dziale.
artekp999
mi nie chodzi o to zeby szukac kogoś kto zrobi mi kod a ja tylko go skopiuje. Mi chodzi żeby mi ktoś wytłumaczył to na moim przykładzie.

TEMAT DO ZAMKNIĘCIA
Poradziłem sobie sam z kodem. Za każdym razem pomijałem jedną rzecz i temu nie działało.
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.