Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stronnicowanie
Forum PHP.pl > Forum > Przedszkole
MOniToR
Szukałem na forum, jednak nie potrafiłem tego odpowiednio wykorzystać. Obecne mam takie porcjowanie:
  1. <?php
  2.  
  3. $porcja=10;
  4. $wiersz=0+$dawka;
  5. $sqlcmt = &#092;"select * from comments where art_id='$id' AND type_id='$type_id' ORDER BY comment_id limit $wiersz, $porcja\";
  6.  $resultcmt = mysql_query($sqlcmt);
  7.  
  8.  
  9. $sql1 = &#092;"select * from comments where art_id='$id' AND type_id='$type_id'\";
  10. $result1 = mysql_query($sql1);
  11. $vol = mysql_num_rows($result1);
  12.  
  13. $r=$wiersz-$porcja;
  14. $f=$wiersz+$porcja;
  15. if($r >= 0){
  16. echo &#092;"( <a href=$strona&dawka=$r>Poprzednia strona</a> )  \";
  17. }
  18. if($f < $vol){
  19. echo &#092;"( <a href=$strona&dawka=$f>Nastepna strona</a> )\";
  20. }
  21.  
  22. ?>

Chciałbym aby wyświetlała mi się lista stron( 1 2 3 itd.) . Jak to zrobić? ;> Prosze o pomoc.
Kuziu
  1. <?php
  2.  
  3. $per_page // ile newsów na 1 stronie
  4.  
  5. $sql    =&#092;"SELECT count(news_id) FROM news\";
  6. $result    =@mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  7. $ilosc    =mysql_result($result,0,&#092;"count(news_id)\");
  8.  
  9. $all=ceil($ilosc/$per_page);
  10. echo(&#092;"Przejdź do strony:<br>\");
  11. for($i=0;$i<$all;$i++){
  12.   $tmp=$i+1;
  13.   echo(&#092;"<a href='index.php?page=$tmp'> $tmp </a>\");
  14. }
  15.  
  16. ?>
MOniToR
co robi count() ? i co zawiera $i ? Bo musze przecierz jeszcze pobrać dane z bazy ;X
Kuziu
zlicza ilość wpisów w tabeli ... w tym wypadku ilość newsów ...
MOniToR
No to fajnie zlicza mi ale jak mam zrobić aby mi wyśiwietliło okreslone dane?
Kuziu
określone tzn. questionmark.gif
Indianin
Mysle ze chodzi a tresc newsow itp .
kramot
Postanowilem dolaczyc sie do pytania. Kod uzytkownika KUZIU znakomicie dzieli ilosc wynikow zapytania przez $per_page i wyswietla linki do podzielonych stron.
Moje pytanie jest nastepujace: Jak sprawic zeby wyciagniete z bazy dane wyswietlaly sie na stronie w danej ilosci ($per_page)?
Probowalem z petla while ale moje proby spelzly na niczym dlatego pisze. Wielkie dzieki za pomoc. Pozdrawiam.
MOniToR
Cytat(Kuziu @ 2005-01-14 19:11:55)
określone tzn. questionmark.gif

np. dane z 4 strony. Stronnicowanie jest mi potrzebne w systemie komentarzy.
Kuziu
  1. <?php
  2.  
  3. if(!$page){$page=0;}else{$page--;} // Jeśli nie zostala określona strona to wyświetl pierwszą (zerową) jeśli jest to $page=$page-1;
  4.                     
  5. $od=$page*$per_page; // od ktorego news'a zacząć = strona*ilosc_na_stronie
  6.                 
  7. $sql=&#092;"SELECT * FROM news ORDER by time DESC LIMIT $od,$per_page\";
  8. $result    =@mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  9.     
  10. while($row = mysql_fetch_array($result)){
  11.   $news_id = $row['news_id'];
  12.   $autor     = $row['autor'];
  13. // i tak dalej pobierając wszystkie dane ...
  14.   echo(&#092;"Treść newsów/komentarzy\"); // Wyświetlanie
  15. }
  16.  
  17. ?>
Kermit
  1. <?php
  2. include(&#092;"connect.php\");
  3. $ok = mysql_select_db(&#092;"test\");
  4. if (!$ok) die(&#092;"dupfffa\");
  5.  
  6. if(!$page){$page=0;}else{$page--;} // Jeśli nie zostala określona strona to wyświetl pierwszą (zerową) jeśli jest to $page=$page-1;
  7.  
  8. $per_page=2;  
  9. $od=$page*$per_page; // od ktorego news'a zacząć = strona*ilosc_na_stronie
  10.  
  11. $sql=&#092;"SELECT tytul, data FROM news ORDER by data DESC LIMIT $od,$per_page\";
  12. $result=@mysql_query($sql) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  13.  
  14. while($row = mysql_fetch_array($result)){
  15. echo (&#092;"$row[tytul]<BR> $row[data]<br>\"); // Wyświetlanie
  16. }
  17.  
  18. $sql1=&#092;"SELECT count(id) FROM news ORDER by data DESC LIMIT $od,$per_page\";
  19. $result1=@mysql_query($sql1) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  20. $ilosc =mysql_result($result1,0,&#092;"count(id)\");
  21. $all=ceil($ilosc/$per_page);
  22. echo(&#092;"Przejdź do strony:<br>\");
  23. for($i=0;$i<$all;$i++){
  24.  $tmp=$i+1;
  25. echo(&#092;"<a href='przekier.php?page=$tmp'> $tmp </a>\");
  26. }
  27. ?>


Mam taki skrypt. Dzieli mi on newsy na 4 strony, lecz obojętnie na którą wejdę zawsze mam te same :/. Co jest źle?

Kermit.
Kuziu
a zobacz czy zmienna $page ma jakąś wartość ... może musisz użyć

  1. <?php
  2.  
  3. $page = $_GET['page'];
  4.  
  5. ?>
Kermit
Dzięki działa biggrin.gif.

Kermit.
MOniToR
A mi nie do końca działa :/ Lista stron pojawia mi sie tylko na pierwszej stronie, na pozostałych mam napis 'przejdz do strony' ale bez linków do stron :/

// to pomoże mi ktoś? co jest w tym złego, że wysietla mi liste tylko an pierwszej stronie? :
  1. <?php
  2. $sql1 = &#092;"select count(comment_id) from comments where art_id='$id' AND type_id='$type_id' ORDER BY comment_id LIMIT $od,$per_page\";
  3. $result1=mysql_query($sql1) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  4. $ilosc =mysql_result($result1,0,&#092;"count(comment_id)\");
  5. $all=ceil($ilosc/$per_page);
  6. print(&#092;"<p align=\"center\">\");
  7. echo(&#092;"Przejdź do strony:<br>\");
  8.  
  9. for($i=0;$i<$all;$i++){
  10. $tmp=$i+1;
  11. echo(&#092;"<a href=\"$strona&page=$tmp\"> $tmp </a>\");
  12. }
  13. print(&#092;"</p>\");
  14. ?>
Guest
Sorry że odświerzam, ale ten skrypt mi jest bardzo potrzebny a mam ten sam problem co MOniToR. Na pierwszej stronie jest wszystko ok, a na drógiej tez mi sie wyświetlają rekordy z bazy, ale linków do podstron juz nie ma a na ich miejsce pojawił się błąd:

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 10 in C:\Program Files\WebServ\httpd-users\mycms\include\hehe.php on line 50

a linia 50 wygląda tak:

$ilosc =mysql_result($result1,0,"count(id)");


Pozdrawiam
level
Kuziu
BO nie masz nic w bazie danych ...
level
No problem był właśni w tym że miałem...
Jednak problem już rozwiązałem, linika :

$sql1="SELECT count(id) FROM news ORDER by data DESC LIMIT $od,$per_page";

powinnna wyglądać tak:

$sql1="SELECT count(id) FROM news ORDER by data DESC";


Pozdrawiam
level
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.