Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][PostgreSQL] Podział tabeli
Forum PHP.pl > Forum > Przedszkole
adrios
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 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"); ?>
nospor
to co chcesz zrobic nazywa sie stronicowanie
Poszukaj na forum - bylo milion razy
Adrian1207
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ł winksmiley.jpg
artur_dziocha
słowa do google i szukajki
stronicowanie, pagination
klasa pager nospora
Pozdrawiam
adrios
Dzieki nie wiedziałem że to się tak nazywa 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. ?>
nospor
mistrzu, jak ci rzuca bledami, to nalezy te bledy nam pokazac...
adrios
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
nospor
no bo w pg tak sie nie korzysta z LIMIT

http://pgsqld.active-venture.com/queries-limit.html
adrios
Dzięki za tą drobną podpowiedź 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 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. ?>
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.