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 :
$last = ceil($rows/$page_rows);
A tutaj przedstawiam cały kod:
<?php
require_once "connect.php";
if ($dbh->connect_errno !=0)
{
echo "Error: ". $dbh->connect_errno; }
else
{
try
{
//Pierwsze zapytanie do policzenia liczby wierszy
$sth=$dbh->prepare("SELECT COUNT(id) FROM Spis");
$sth->execute();
$row = $sth->fetchAll(PDO::FETCH_ASSOC);
//Tutaj mamy wszystkie
$rows = $row[0];
//To jest liczba rezultatow, ktore chcemy wyswietla na stronie
$page_rows = 10;
//Liczba naszej ostatniej strony
$last = ceil($rows/$page_rows); //Upewniamy sie,ze $last nie jest mniejszy od 1
if ($last < 1)
{
$last = 1;
}
//Ustawiamy $pagenum jako zmienna
$pagenum = 1;
//Bierzemy pagenum z URL if jezeli jest terazniejsza, else jezeli jest 1
{
}
//Upewniamy sie,ze numer strony nie jest nizszy niz 1 albo nie jest wiekszy niz $last
if ($pagenum < 1)
{
$pagenum = 1;
}
else if ($pagenum > $last)
{
$pagenum = $last;
}
//Ustalamy zasieg wierszy do wybrania $pagenum
$limit = 'LIMIT ' .($pagenum - 1) * $page_rows.',' .$page_rows;
// Zapytanie biorace jedna strony wierszy
$sql = $dbh->prepare("SELECT ID, Imie, Nazwisko FROM Spis");
$sql->execute();
//Pokazuje uzytkownikowi, na ktorej jest stronie i liczbe stron dostepnych
$textline1 = "Spis ludnosci (<b>$rows</b>)";
$textline2 = "Strona <b>$pagenum</b> of <b>$last</b>";
// Ustawiamy $paginationCtrls jako zmienna
$paginationCtrls = '';
//Jezeli jest wiecej niz 1 strona rezultatow
if ($last != 1)
{
/*Sprawdzamy czy jestesmy na 1 stronie. Jezeli tak to nie potrzebujemy "Poprzednia"
A jezeli nie jestesmy to generujemy link do pierwszej stroyn i do nastepnej.*/
if ($pagenum > 1)
{
$previous = $pagenum -1;
$paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">Poprzednia</a> ';
//Generujemy klikalne linki
for($i = $pagenum - 4; $i < $pagenum; $i++)
{
if($i > 0)
{
$paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> $nbsp; ';
}
}
}
//Generujemy liczbę strony, na której jesteśmy bez możliwości przejścia do niej ponownie
$paginationCtrls .= ''.$pagenum.' $nbsp; ';
//Generujemy klikalne numery strony, ktore pojawia sie po prawej
for($i = $pagenum + 1; $i <= $last; $i++)
{
$paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'</a> ';
if($i >= $pagenum + 4)
{
break;
}
//To samo co wyzej tylko sprawdzamy czy jestesmy na ostatniej stronie jak tak to nie generujemy next
if ($pagenum != last)
{
$next = $pagenum + 1;
$paginationCtrls .= ' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Następna</a>';
}
}
}
$list = '';
while($row = $sql->fetchAll(PDO::FETCH_ASSOC))
{
$id = $row["ID"];
$firstname = $row["Imie"];
$lastname = $row["Nazwisko"];
}
}
catch (Exception $e)
{
echo "Przepraszamy w tej chwili nie możemy połączyć się z bazą danych. Spróbuj ponownie później."; }
$dbh=null;
}
?>