Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pagination, Problem z pagination
Durkane
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 28.07.2015

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


Witam.
Próbuję zrobić pagination według tutoriala z youtube. Jednak na stronie wyskakuje mi błąd Fatal error: Unsupported operand types.
Ten problem dotyczy tego fragmentu kodu :
  1. $last = ceil($rows/$page_rows);


A tutaj przedstawiam cały kod:
  1. <?php
  2. require_once "connect.php";
  3.  
  4. if ($dbh->connect_errno !=0)
  5. {
  6. echo "Error: ". $dbh->connect_errno;
  7. }
  8. else
  9. {
  10. try
  11. {
  12. //Pierwsze zapytanie do policzenia liczby wierszy
  13. $sth=$dbh->prepare("SELECT COUNT(id) FROM Spis");
  14. $sth->execute();
  15. $row = $sth->fetchAll(PDO::FETCH_ASSOC);
  16. //Tutaj mamy wszystkie
  17. $rows = $row[0];
  18. //To jest liczba rezultatow, ktore chcemy wyswietla na stronie
  19. $page_rows = 10;
  20. //Liczba naszej ostatniej strony
  21. $last = ceil($rows/$page_rows);
  22. //Upewniamy sie,ze $last nie jest mniejszy od 1
  23. if ($last < 1)
  24. {
  25. $last = 1;
  26. }
  27. //Ustawiamy $pagenum jako zmienna
  28. $pagenum = 1;
  29. //Bierzemy pagenum z URL if jezeli jest terazniejsza, else jezeli jest 1
  30. if (isset($_GET['pn']))
  31. {
  32. $pagenum = preg_replace('#[^0-9]#','', $_GET['pn']);
  33. }
  34. //Upewniamy sie,ze numer strony nie jest nizszy niz 1 albo nie jest wiekszy niz $last
  35. if ($pagenum < 1)
  36. {
  37. $pagenum = 1;
  38. }
  39. else if ($pagenum > $last)
  40. {
  41. $pagenum = $last;
  42. }
  43. //Ustalamy zasieg wierszy do wybrania $pagenum
  44. $limit = 'LIMIT ' .($pagenum - 1) * $page_rows.',' .$page_rows;
  45. // Zapytanie biorace jedna strony wierszy
  46. $sql = $dbh->prepare("SELECT ID, Imie, Nazwisko FROM Spis");
  47. $sql->execute();
  48. //Pokazuje uzytkownikowi, na ktorej jest stronie i liczbe stron dostepnych
  49. $textline1 = "Spis ludnosci (<b>$rows</b>)";
  50. $textline2 = "Strona <b>$pagenum</b> of <b>$last</b>";
  51. // Ustawiamy $paginationCtrls jako zmienna
  52. $paginationCtrls = '';
  53. //Jezeli jest wiecej niz 1 strona rezultatow
  54. if ($last != 1)
  55. {
  56. /*Sprawdzamy czy jestesmy na 1 stronie. Jezeli tak to nie potrzebujemy "Poprzednia"
  57.   A jezeli nie jestesmy to generujemy link do pierwszej stroyn i do nastepnej.*/
  58. if ($pagenum > 1)
  59. {
  60. $previous = $pagenum -1;
  61. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">Poprzednia</a> &nbsp; ';
  62.  
  63. //Generujemy klikalne linki
  64. for($i = $pagenum - 4; $i < $pagenum; $i++)
  65. {
  66. if($i > 0)
  67. {
  68. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> $nbsp; ';
  69.  
  70. }
  71. }
  72. }
  73. //Generujemy liczbę strony, na której jesteśmy bez możliwości przejścia do niej ponownie
  74. $paginationCtrls .= ''.$pagenum.' $nbsp; ';
  75. //Generujemy klikalne numery strony, ktore pojawia sie po prawej
  76. for($i = $pagenum + 1; $i <= $last; $i++)
  77. {
  78. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'</a> &nbsp; ';
  79. if($i >= $pagenum + 4)
  80. {
  81. break;
  82. }
  83. //To samo co wyzej tylko sprawdzamy czy jestesmy na ostatniej stronie jak tak to nie generujemy next
  84. if ($pagenum != last)
  85. {
  86. $next = $pagenum + 1;
  87. $paginationCtrls .= ' &nbsp; &nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Następna</a>';
  88. }
  89. }
  90. }
  91. $list = '';
  92. while($row = $sql->fetchAll(PDO::FETCH_ASSOC))
  93. {
  94. $id = $row["ID"];
  95. $firstname = $row["Imie"];
  96. $lastname = $row["Nazwisko"];
  97. }
  98. }
  99. catch (Exception $e)
  100. {
  101. echo "Przepraszamy w tej chwili nie możemy połączyć się z bazą danych. Spróbuj ponownie później.";
  102. }
  103. $dbh=null;
  104. }
  105. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- Durkane   [PHP]Pagination   29.01.2016, 11:34:01
- - trueblue   FETCH_ASSOC zwraca tablicę asocjacyjną, po drugie ...   29.01.2016, 11:37:39
- - Durkane   Dobra przechodzi normalnie na stronę tylko nie wyś...   29.01.2016, 12:00:34
- - trueblue   Zobacz jeszcze raz kod jaki Ci podałem i porównaj ...   29.01.2016, 12:03:31
- - Durkane   O matko najmocniej przepraszam Sądziłem, że wszys...   29.01.2016, 12:26:10
- - nospor   Nie $sql->fetchAll a $sql->fetch ...   29.01.2016, 12:39:23
- - Durkane   Właśnie mam włączony manual i tam nigdzie nie zauw...   29.01.2016, 12:57:06
- - lukaskolista   Wywal, w komunikacie błędu masz jasno powiedziane,...   29.01.2016, 14:42:41
- - Durkane   Witam ponownie. Nie chce zakładać nowego tematu dl...   30.01.2016, 13:59:41
- - trueblue   Przy okazji masz nakierowanie jak przechowywać pli...   30.01.2016, 14:18:22
- - Durkane   Jeżeli dobrze rozumiem to dać takie coś : [PHP] po...   30.01.2016, 14:51:28
- - trueblue   Zamiast readfile.   30.01.2016, 16:03:11
- - Durkane   Witam ponownie. Aby nie zaśmiecać kolejnym tematem...   31.01.2016, 11:08:53
- - viking   Dlaczego nie bindujesz danych POST tylko zezwalasz...   31.01.2016, 11:11:45
- - trueblue   Myślisz, że: [SQL] pobierz, plaintext WHERE Imie L...   31.01.2016, 11:13:18
- - Durkane   No właśnie nad tym myślałem, że to bez sensu, ale ...   31.01.2016, 11:14:13
- - trueblue   Nie wiesz jak podzielić string? http://php.net/ma...   31.01.2016, 11:15:48
- - Durkane   No niestety od początku mojej nauki nie było mi to...   31.01.2016, 11:17:31
- - trueblue   Wpisz w wyszukiwarkę: Tracikowski Adam   31.01.2016, 11:22:55
- - Durkane   Ah... po samym nazwisku albo jak nazwisko pierwsze...   31.01.2016, 13:29:18
- - trueblue   Imię i nazwisko zawierają przynajmniej jedną z fra...   31.01.2016, 13:33:19
- - Durkane   Ah kurde robiłem tak tylko zamiast OR dałem AND Z...   31.01.2016, 13:37:28
- - trueblue   Przede wszystkim masz błąd w budowie zapytania. ...   31.01.2016, 14:09:46
- - Durkane   Ah tak nie zauważyłem tego Dobra działa teraz dob...   31.01.2016, 14:34:07
- - trueblue   A jeśli ktoś wpisze trzy wyrazy?   31.01.2016, 14:56:31
- - Durkane   Jeżeli wpiszę 3 wyraz na końcu to wyszuka normalni...   1.02.2016, 11:35:30
- - trueblue   W Twoim kodzie nie ma nawiązania do capcthy. Co to...   1.02.2016, 11:52:47
- - Durkane   Tzn to jest tak jakby captcha Po prostu pobiera j...   1.02.2016, 12:30:15
- - viking   I w jquery pobieramy go przez input[type="num...   1.02.2016, 12:34:23
- - Durkane   Ogólnie w js, query itd jestem noga nic z tego nie...   1.02.2016, 12:39:22
- - lukaskolista   Twoja captcha to nie captcha. Klient w łatwy sposó...   1.02.2016, 12:42:09
- - Durkane   No wiem,że nie captcha i chyba po prostu na nią zm...   1.02.2016, 12:44:09
- - lukaskolista   Wywal tą "captche", bo na razie masz wię...   1.02.2016, 12:48:29
- - Durkane   Jakie jeśli mógłbym wiedzieć?   1.02.2016, 12:51:24
- - kapslokk   Zmienne prosto z $_POST w zapytaniu ?   1.02.2016, 12:52:25
- - Durkane   Ah w sumie racja. W innych plikach to zmieniałem, ...   1.02.2016, 12:54:32
- - lukaskolista   Zrób oddzielne pola do wyszukiwania imienia i nazw...   1.02.2016, 13:27:57
- - viking   Warto też zapoznać się z tabelką https://www.w3.or...   1.02.2016, 13:28:50


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: 23.08.2025 - 00:04