Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][PostgreSQL] Podział tabeli, limit 10 rekordów na każdej stronie
adrios
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.05.2007

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


Witam!
Czy ktoś może mi pomóc podzielić tak wyświetlaną tabelę na limit 10 rekordów na kazdej podstronie? Szukałem na różnych forach ale nie znalazłem nic co mogłoby mi pomóc. Ogólnie potrafię wyświetlić np. 5 rekordów na stronie ale nie wiem jak dodać pod dołem linki do kolejnych podstron. Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/dostal.gif) .


  1. <? include("top.php"); ?>
  2. <div id="maincontent"><!-- główna część strony -->
  3.  
  4.    <div id="lewa"><!-- lewe menu -->
  5.  
  6.     </div>
  7.     <div id="right-side">                                   <!-- prawa kolumna -->
  8.     </div>
  9.     <div id="main">
  10.                                                              <!-- główny blok -->
  11.     <h2>Serwisanci</h2>
  12.      <br />
  13.       <a class="ops" href="maina.php" title="powrót do panelu">Powrót</a> | <a class="ops" href="administratorzy_mod_a.php?action=news&id=$serwisant" title="nowy serwisant">Dodaj</a> | <a class="ops" href="hasla_ser_a.php" title="edycja haseł serwisantów">Edytuj hasła</a>
  14.        <br /><br />
  15. <?
  16. function barwa()
  17. {
  18. static $rodzaj_koloru;
  19.  
  20. if($rodzaj_koloru == "#336699")
  21. {
  22. $rodzaj_koloru = "#006699";
  23. }
  24. else
  25. {
  26. $rodzaj_koloru = "#336699";
  27. }
  28.  
  29. return($rodzaj_koloru);
  30.  
  31. }
  32. ?>
  33.    
  34.  
  35. <?
  36. $query = "SELECT * FROM serwisanci";
  37. $result = pg_query($polaczenie, $query);
  38. echo "<table border=\"1px\" align=\"center\" cellpadding=\"1\" cellspacing=\"0\" >\n";
  39. echo "<tr align=\"center\">\n";
  40.  
  41. echo "<td bgcolor=\"#CCCCCC\"><b>Lp:</b></td>\n";
  42. echo "<td bgcolor=\"#CCCCCC\"><b>Id:</b></td>\n";
  43. echo "<td bgcolor=\"#CCCCCC\"><b>Imie:</b></td>\n";
  44. echo "<td bgcolor=\"#CCCCCC\"><b>Nazwisko:</b></td>\n";
  45. echo "<td bgcolor=\"#CCCCCC\"><b>Telefon:</b></td>\n";
  46. echo "<td bgcolor=\"#CCCCCC\"><b>Województwo:</b></td>\n";
  47. echo "<td bgcolor=\"#CCCCCC\"><b>Miejscowość:</b></td>\n";
  48. echo "<td bgcolor=\"#CCCCCC\"><b>Kod:</b></td>\n";
  49. echo "<td bgcolor=\"#CCCCCC\"><b>Ulica:</b></td>\n";
  50. echo "<td bgcolor=\"#CCCCCC\"><b>Numer:</b></td>\n";
  51. echo "<td bgcolor=\"#CCCCCC\"><b>Modyfikacja:</b></td>\n";
  52.  
  53.  
  54. echo "</tr>\n";
  55.  
  56. while ($row = pg_fetch_array ($result))
  57. {
  58. $lp = $lp +1;
  59. $serwisant = $row[0];
  60. $imie= $row[1];
  61. $nazwisko = $row[2];
  62. $prawa = $row[5];
  63. $telefon = $row[6];
  64. $wojewodztwo = $row[7];
  65. $miejscowosc = $row[8];
  66. $ulica = $row[9];
  67. $nr = $row[10];
  68. $kod = $row[11];
  69.  
  70. $kolory=barwa();
  71.  
  72. echo "<tr>";
  73. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$lp</div></td>\n";
  74. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$serwisant</div></td>\n";
  75. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$imie</div></td>\n";
  76. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nazwisko</div></td>\n";
  77. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$telefon</td>\n";
  78. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$wojewodztwo</div></td>\n";
  79. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$miejscowosc</div></td>\n";
  80. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$kod</div></td>\n";
  81. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$ulica</div></td>\n";
  82. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nr</div></td>\n";
  83. echo"<td align=\"center\" bgcolor=\"$kolory\"><a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=mods&id=$serwisant\" title=\"edytuj dane serwisanta\">Edytuj</a> | <a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=dels&id=$serwisant\" title=\"usuń serwisanta\">Usuń</a></td>\n";
  84. echo "</tr>\n";
  85.  
  86.  
  87. }
  88. echo "</table>";
  89. ?>
  90. <br /><br />
  91.  </div>
  92.  <? include("stopka.php"); ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




to co chcesz zrobic nazywa sie stronicowanie
Poszukaj na forum - bylo milion razy
Go to the top of the page
+Quote Post
Adrian1207
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 10
Dołączył: 20.02.2007

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


Może użyj klasy pager autorstwa nospora? W klasie wszystko w komentarzach jest podane co gdzie wsadzić, także myślę że sobie poradzisz, temat z klasą tutaj: http://forum.php.pl/index.php?showtopic=35498

Edit: O widzę że nospor szybciej Ciebie znalazł (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Adrian1207 2.01.2009, 20:48:01
Go to the top of the page
+Quote Post
artur_dziocha
post
Post #4





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


słowa do google i szukajki
stronicowanie, pagination
klasa pager nospora
Pozdrawiam
Go to the top of the page
+Quote Post
adrios
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.05.2007

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


Dzieki nie wiedziałem że to się tak nazywa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) będe szukał.

Przegrzebałem pare artykułów na necie i znalazłem prosty kod, który zastosowałem w moim przypadku jednak wciąż wyrzuca błędy związane z pgsql w linii 9, 10 i 31...

  1. <?
  2. $perPage = 5;
  3. if (is_numeric($_REQUEST['page'])) {
  4. $page = (int) $_REQUEST['page'];
  5. if ($page < 1) {
  6. $page = 1;
  7. }
  8. } else {
  9. $page = 1;
  10. }
  11. $start = ($page - 1) * $perPage;
  12.  
  13. $query = "SELECT * FROM klienci LIMIT $start, $perPage";
  14. $result = pg_query($polaczenie, $query);
  15. $row = pg_fetch_array($result);
  16.  
  17.    
  18. echo "<table border=\"1px\" align=\"center\" cellpadding=\"1\" cellspacing=\"0\">\n";
  19. echo "<tr align=\"center\">\n";
  20.  
  21. echo "<td bgcolor=\"#CCCCCC\"><b>Lp:</b></td>\n";
  22. echo "<td bgcolor=\"#CCCCCC\"><b>Id:</b></td>\n";
  23. echo "<td bgcolor=\"#CCCCCC\"><b>Imie:</b></td>\n";
  24. echo "<td bgcolor=\"#CCCCCC\"><b>Nazwisko:</b></td>\n";
  25. echo "<td bgcolor=\"#CCCCCC\"><b>Telefon:</b></td>\n";
  26. echo "<td bgcolor=\"#CCCCCC\"><b>Województwo:</b></td>\n";
  27. echo "<td bgcolor=\"#CCCCCC\"><b>Miejscowość:</b></td>\n";
  28. echo "<td bgcolor=\"#CCCCCC\"><b>Kod:</b></td>\n";
  29. echo "<td bgcolor=\"#CCCCCC\"><b>Ulica:</b></td>\n";
  30. echo "<td bgcolor=\"#CCCCCC\"><b>Numer:</b></td>\n";
  31. echo "<td bgcolor=\"#CCCCCC\"><b>Modyfikacja:</b></td>\n";
  32.  
  33.  
  34. echo "</tr>\n";
  35.  
  36. while ($r = pg_fetch_array ($result))
  37. {
  38. $lp = $lp +1;
  39. $klient = $r[0];
  40. $imie= $r[1];
  41. $nazwisko = $r[2];
  42. $telefon = $r[3];
  43. $wojewodztwo = $r[4];
  44. $miejscowosc = $r[5];
  45. $ulica = $r[6];
  46. $nr = $r[7];
  47. $kod = $r[8];
  48. $nr_dowodu = $r[9];
  49. $nip = $r[10];
  50. $regon = $r[11];
  51. $data_dodania = $r[12];
  52.  
  53.  
  54. $kolory=barwa();
  55.  
  56. echo "<tr>";
  57. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$lp</div></td>\n";
  58. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$klient</div></td>\n";
  59. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$imie</div></td>\n";
  60. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nazwisko</div></td>\n";
  61. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$telefon</td>\n";
  62. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$wojewodztwo</div></td>\n";
  63. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$miejscowosc</div></td>\n";
  64. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$kod</div></td>\n";
  65. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$ulica</div></td>\n";
  66. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nr</div></td>\n";
  67. echo"<td align=\"center\" bgcolor=\"$kolory\"><a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=modk&id=$klient\" title=\"edytuj dane klienta\">Edytuj</a>
  68. | <a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=delk&id=$klient\" title=\"usuń klienta\">Usuń</a>
  69. | <a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=detk&id=$klient\" title=\"informacje szczegółowe\">>></a>
  70.      </td>\n";
  71. echo "</tr>\n";
  72.  
  73.  
  74. }
  75. echo "</table>";
  76.  
  77. $prev = $page - 1;
  78. $next = $page + 1;
  79. $prevLink = $_SERVER['PHP_SELF'] . '?page=' . $prev;
  80. $nextLink = $_SERVER['PHP_SELF'] . '?page=' . $next;
  81. echo "<p align='center'><a href='$prevLink'>Previous Page</a> | <a href='$nextLink'>Next Page</a></p>";
  82.  
  83. ?>


Ten post edytował adrios 2.01.2009, 23:24:49
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mistrzu, jak ci rzuca bledami, to nalezy te bledy nam pokazac...
Go to the top of the page
+Quote Post
adrios
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.05.2007

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


Oto one:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: LIMIT #,# syntax is not supported HINT: Use separate LIMIT and OFFSET clauses. in /home/stud/dyplomy/iszss/public_html/klienci_a.php on line 69

Warning: pg_fetch_array() expects parameter 1 to be resource, boolean given in /home/stud/dyplomy/iszss/public_html/klienci_a.php on line 70

Warning: pg_fetch_array() expects parameter 1 to be resource, boolean given in /home/stud/dyplomy/iszss/public_html/klienci_a.php on line 91
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no bo w pg tak sie nie korzysta z LIMIT

http://pgsqld.active-venture.com/queries-limit.html
Go to the top of the page
+Quote Post
adrios
post
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.05.2007

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


Dzięki za tą drobną podpowiedź (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Posiedziałem trochę i wreszcie sukces. Ale żeby nie było za kolorowo to coś nie do końca dobrze działa mi Dalej i Wstecz raz przewija po kolei raz do samego końca a raz w ogóle (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) jednak numeracja śmiga bez zastrzeżeń.

  1. <?
  2.  
  3. $offset = $_REQUEST['offset'];
  4. $pgnum = $_REQUEST['pgnum'];
  5.  
  6.    settype($offset, 'integer');
  7.    settype($pgnum, 'integer');
  8.    
  9. $limit=15;
  10.  
  11. $numresults=pg_query("select * from klienci");  
  12. $numrows=pg_num_rows($numresults);
  13.  
  14. if (empty($offset)) {
  15.    $offset=0;
  16.    $pgnum=1;
  17.    }
  18.    
  19. $result=pg_query("SELECT * FROM klienci LIMIT $limit OFFSET $offset");
  20.  
  21. echo "<table border=\"1px\" align=\"center\" cellpadding=\"1\" cellspacing=\"0\">\n";
  22. echo "<tr align=\"center\">\n";
  23.  
  24. echo "<td bgcolor=\"#CCCCCC\"><b>Lp:</b></td>\n";
  25. echo "<td bgcolor=\"#CCCCCC\"><b>Id:</b></td>\n";
  26. echo "<td bgcolor=\"#CCCCCC\"><b>Imie:</b></td>\n";
  27. echo "<td bgcolor=\"#CCCCCC\"><b>Nazwisko:</b></td>\n";
  28. echo "<td bgcolor=\"#CCCCCC\"><b>Telefon:</b></td>\n";
  29. echo "<td bgcolor=\"#CCCCCC\"><b>Województwo:</b></td>\n";
  30. echo "<td bgcolor=\"#CCCCCC\"><b>Miejscowość:</b></td>\n";
  31. echo "<td bgcolor=\"#CCCCCC\"><b>Kod:</b></td>\n";
  32. echo "<td bgcolor=\"#CCCCCC\"><b>Ulica:</b></td>\n";
  33. echo "<td bgcolor=\"#CCCCCC\"><b>Numer:</b></td>\n";
  34. echo "<td bgcolor=\"#CCCCCC\"><b>Modyfikacja:</b></td>\n";
  35.  
  36.  
  37. echo "</tr>\n";
  38.  
  39. while ($row = pg_fetch_array ($result, $i))
  40. {
  41. $lp = $lp +1;
  42. $klient = $row[0];
  43. $imie= $row[1];
  44. $nazwisko = $row[2];
  45. $telefon = $row[3];
  46. $wojewodztwo = $row[4];
  47. $miejscowosc = $row[5];
  48. $ulica = $row[6];
  49. $nr = $row[7];
  50. $kod = $row[8];
  51. $nr_dowodu = $row[9];
  52. $nip = $row[10];
  53. $regon = $row[11];
  54. $data_dodania = $row[12];
  55.  
  56.  
  57. $kolory=barwa();
  58.  
  59. echo "<tr>";
  60. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$lp</div></td>\n";
  61. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$klient</div></td>\n";
  62. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$imie</div></td>\n";
  63. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nazwisko</div></td>\n";
  64. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$telefon</td>\n";
  65. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$wojewodztwo</div></td>\n";
  66. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$miejscowosc</div></td>\n";
  67. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$kod</div></td>\n";
  68. echo "<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$ulica</div></td>\n";
  69. echo"<td align=\"center\" bgcolor=\"$kolory\"><div id=\"db_tekst\">$nr</div></td>\n";
  70. echo"<td align=\"center\" bgcolor=\"$kolory\"><a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=modk&id=$klient\" title=\"edytuj dane klienta\">Edytuj</a>
  71. | <a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=delk&id=$klient\" title=\"usuń klienta\">Usuń</a>
  72. | <a class=\"kontakt\" href=\"administratorzy_mod_a.php?action=detk&id=$klient\" title=\"informacje szczegółowe\">>></a>
  73.     </td>\n";
  74. echo "</tr>\n";
  75.  
  76.  
  77. }
  78. echo "</table>";
  79.  
  80. $pages=intval($numrows/$limit);
  81.  
  82. if ($numrows%$limit) {
  83.    $pages++;
  84.    }
  85.    
  86.    echo "<font size=1>";
  87.    if (pages!=1)
  88.    {
  89.        if ($pgnum==1) {
  90.            print "<a href=\"$PHP_SELF?offset=0&pgnum=1\">Wstecz</a> &nbsp; \n";
  91.        }
  92.        else
  93.        {
  94.            $prevoffset=$offset-20;
  95.            $cpgnum = intval($prevoffset/$limit)+1;
  96.            print "<a href=\"$PHP_SELF?offset=$prevoffset&pgnum=$cpgnum\">Dalej</a> &nbsp; \n";
  97.        }
  98.    }
  99.  
  100.    for ($i=1;$i<=$pages;$i++) {
  101.        $newoffset=$limit*($i-1);
  102.        $cpgnum = $i;
  103.        print "<a href=\"$PHP_SELF?offset=$newoffset&pgnum=$cpgnum\">$cpgnum</a> &nbsp; \n";
  104.    }
  105.  
  106.    if ($pages!=1)
  107.    {
  108.        if ($pgnum<$pages) {
  109.            $newoffset=$offset+$limit;
  110.            $cpgnum = intval(($offset+$limit)/$limit)+1;
  111.            print "<a href=\"$PHP_SELF?offset=$newoffset&pgnum=$cpgnum\">Dalej</a><p>\n";
  112.  
  113.        }
  114.        else
  115.        {
  116.            print "<a href=\"$PHP_SELF?offset=$newoffset&pgnum=$pages\">Dalej</a><p>\n";
  117.  
  118.        }
  119.    }  
  120. ?>
Go to the top of the page
+Quote Post

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: 22.08.2025 - 19:18