Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stronicowanie, Podział na strony
mith
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 14.04.2006

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


Witam
Mam mały problem mianowicie jak można przerobić ten skrypt tak aby był możliwy podział na strony wraz z możliwością wyboru strony np.:
<< < 1 2 3 [4] 5 6 7 > >>
I żeby na stronie było wyświetlane np. tylko 15 wierszy tej tabelki.

Dzięki z góry.

  1. <?
  2. include('db.php');
  3.  
  4. $result = mysql_query('SELECT * FROM tabela ORDER BY nazwa');
  5. if ($row = mysql_fetch_array($result)) {
  6.  
  7. print('<table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#F3F3F3">
  8. <tr><td><p align="left"><b>Nazwa</b></td>
  9. </tr><tr>
  10. ');
  11.  
  12. do {
  13.  
  14. print ('<td>'.$row["nazwa"].'</font></td></tr>
  15. ');
  16.  
  17. } while ($row = mysql_fetch_array($result));
  18. print('</table>');
  19. } else {
  20. print "Błąd: Nie odnaleziono rekordów.";
  21. }
  22. ?>


PS: Wiem że na forum dużo tego jest ale mi jest potrzebny akurat ten skrypt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzyszbi
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


powinno dzialać
  1. <?php
  2. define('ILOSC_WYNIKOW_NA_STRONIE', 5);
  3.  
  4. include('db.php'); // połączenie z bazą itp
  5. //sprawdzamy ile rekorów jest w bazie
  6. $query = "SELECT SQL_CALC_FOUND_ROWS * FROM tabela";
  7. $result = mysql_query ($query);
  8. $ilosc_rekordow = @mysql_num_rows($result);
  9. //liczymy ile bedzie stron
  10.  $ile_stron=ceil($ilosc_rekordow/ILOSC_WYNIKOW_NA_STRONIE);  
  11. $SQL = "SELECT SQL_CALC_FOUND_ROWS * 
  12.  FROM tabela 
  13.  ORDER BY nazwa ASC 
  14.  LIMIT ".mysql_escape_string((int)$_GET['porcja']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  15. // pobiera ILOSC_NA_STRONIE rekordów z bazy, sortując wg daty rosnąco
  16. , zaczynając od $_GET['porcja']*ILOSC_NA_STRONIE
  17. $RES = mysql_query($SQL); // wykonujemy zapytanie
  18.  
  19. print('<table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#F3F3F3">
  20. <tr><td><p align="left"><b>Nazwa</b></td>
  21. </tr><tr>
  22. ');
  23.  
  24. while($row = mysql_fetch_assoc($RES)){
  25.  /*Wyswietlanie wyników, przykładowo:*/
  26. print ('<td>'.$row["nazwa"].'</font></td></tr>
  27. ');
  28. }
  29.  
  30. print('</table>');
  31.  
  32. // w inny sposób pobieramy ilosc danych w bazie
  33. $SQL = "SELECT FOUND_ROWS() as Ilosc";
  34. $RES= mysql_query($SQL);
  35. list($iloscWpisow) = mysql_fetch_row($RES);
  36.  
  37. //Teraz wypadało by wyswietlic jakąc nawigację 
  38.  
  39. //jesli nie jestesmy na pierwszej stronie
  40. if($_GET['porcja']>0){ 
  41. //wyswietlamy link do poprzedniej strony
  42.  echo '<a href="?porcja='.($_GET['porcja']-1).'">Poprzednie</a> ';
  43. }
  44. if ($ile_stron>2*ILOSC_WYNIKOW_NA_STRONIE)
  45. {
  46. if ($strona<5)
  47. {
  48. $ile = 10;
  49. $start = 0;
  50. }
  51.  else
  52. {
  53. $ile = $strona + 5;
  54. if ($ile>$ile_stron)
  55. {
  56. $ile = $ile_stron;
  57. $start = $strona - 5;
  58. }
  59. else
  60. $start = $strona - 5;
  61. }
  62. }
  63. else
  64. {
  65. $ile = $ile_stron;
  66. $start = 0;
  67. }
  68. for($i=$start;$i<$ile;$i++){
  69.  echo '<a href="?porcja='.($i).'">[ '.($i+1).' ]</a> ';
  70. }
  71. //jesli nie jestesmy na ostatniej stronie
  72. if($_GET['porcja']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){ 
  73. //wyswietlamy link do nastepnej strony
  74.  echo ' <a href="?porcja='.($_GET['porcja']+1).'">Następne</a>';
  75. }
  76. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 21:32