Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie porcjowania...
Forum PHP.pl > Forum > PHP
Day Walker
Mam kod na mojej stronie:

  1. <?
  2. $connection = mysql_connect("localhost","root","");
  3. $db = mysql_select_db("portfolio", $connection);
  4. $sql = mysql_query("SELECT * FROM news_webmaster ORDER BY id ASC");
  5. $alternate = "2";
  6. while ($row = mysql_fetch_array($sql)) {
  7. $id = $row["id"];
  8. $tytul = $row["tytul"];
  9. $link = $row["link"];
  10. $data_dodania = $row["data_dodania"];
  11. if ($alternate == "1") {
  12. $color = "#ffffff";
  13. $alternate = "2";
  14. }
  15. else {
  16. $color = "#c0c0c0";
  17. $alternate = "1";
  18. }
  19. echo "<div id='news_webmaster'>$id. <a href='http://$link'>$tytul</a> [$data_dodania]</div>";
  20. }
  21. ?>


Wyświetla dobrze wssystko ale chciałbym zapytać... Jak dołączyć do niego porcjowanie ?

Za nic niemoge sobie dopasować własnego skryptu do tych porcjowan co są w googlach smile.gif

Pomożecie ?
starach
Chodzi ci o to żeby zapytanie SQL nie zwracało od razu wszystkich rekordów ?
Musisz użyć klauzuli "LIMIT <int_początek>,<int_ile_pobrac>" dodajesz to na końcu zapytania.
Dzielisz wszystko na strony; powiedzmy rekordów masz 20 a chcesz wyświetlać po 6 na stronę.
Pobierasz z bazy ilość rekordów i dzielisz na ilość postów na stronie.
20 / 6 = 3 żeby wyrównać w górę ( bo powinny być 4 strony ) używasz funkcji ceil() która zaokrągla w górę.
Jak teraz obliczyć od którego rekordu zacząć ?
Wystarczy że pomnożysz numer strony dajmy na to 3 przez maksymalną liczbę postów,
a potem odejmiesz maks. liczbę postów: 3 * 6 - 6 = 12
LIMIT 12,6 pobierze ci posty na 4 stronę, a teraz musisz to tylko na kod php przerobić smile.gif
Day Walker
A czy mógłbys mi to zrobić ? Bo ja niełapie co napisałeś tongue.gif Jesli niechcesz niezmuszam smile.gif Pozdrawiam smile.gif
starach
No daj spokój smile.gif żeby zrozumieć co napisałem potrzebna jest 2 w podstawówce z matematyki. tongue.gif Kodu ci na pewno nie napiszę.
Jeśli robisz system niusowy i chcesz podzielić wyniki na strony to dobrze ci napisałem smile.gif Musisz to tylko przerobić na kod PHP
Jeszcze dla ułatwienia ci podam:
  1. SELECT * FROM news_webmaster ORDER BY id ASC LIMIT 5, 4

LIMIT od którego rekordu zacząć, ile rekordów pobrać
Wykonaj sobie powyższe z wiersza poleceń może ci coś zaświta smile.gif
Day Walker
  1. <?
  2. $connection = mysql_connect("localhost","root","");
  3. $db = mysql_select_db("portfolio", $connection);
  4. //ile na strone
  5. $ile = 1;
  6. $numrows = mysql_num_rows(mysql_query("SELECT * FROM news_webmaster"));
  7. if(!$p) $p = 0;
  8. // zabezpieczenie przed nienumerycznymi wartosciami
  9. $p = (int)$p; 
  10. $ile = (int)$ile; 
  11. $sql = mysql_query("SELECT * FROM news_webmaster ORDER BY id LIMIT $p,$ile");
  12. while ($row = mysql_fetch_array($sql)) {
  13. $id = $row["id"];
  14. $tytul = $row["tytul"];
  15. $link = $row["link"];
  16. $data_dodania = $row["data_dodania"];
  17. }
  18. echo "<div id='news_webmaster'>$id. <a href='http://$link'>$tytul</a> [$data_dodania]</div>";
  19. echo "strona: ";
  20. for($i=0;$i<ceil($numrows/$ile);$i++) {
  21. echo '<a href="'.$PHP_SELF.'?p='.($i*$ile).'">'.($i+1).'</a> ';
  22. }
  23. ?>


Mam taki oto kodzik ale niewyświetla mi tych rekordów, tylu ilu chce i jest podane w zmiennej "$ile"

@edit (Sab)
Uzywaj bbcode!! tongue.gif
starach
1. Nie używaj zmienny globalnych smile.gif
2. $p = ceil($ilosc_rekordów / $ilosc_stron - $maks_wpisow_na_strone);
pioch
użyj klasy nospor'a smile.gif)

[+] edit
Poprawiłem jego nick : )
---
~strife
L00zak
albo OPT biggrin.gif
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.