Problem z paginacją w php i mysqli

0

witam, na podstawie tutoriali będących na stronach i na youtube napisałem kod następujący:

 
<?php
$mysqli = new mysqli("localhost", "root", "vertrigo", "test");
$mysqli->query ('set character set utf8');



if (mysqli_connect_errno()) {
    printf("Brak połączenia z bazą danych !", mysqli_connect_error());
    exit();
}
$per_page=4;

if(!isset($_GET['page']))
{
$page = 1;
} else
{
$page = $_GET['page'];
}

if($page>1)
{
$start = 0;
}
else
{
$start = $page * $per_page - $per_page;
}

$query = "SELECT id, Nick, Temat,Komentarz  FROM comm ORDER by id ASC";

if ($result = $mysqli->query($query)) {
  
    
    while ($row = $result->fetch_assoc()) {
	   		

        echo ('<tr><td>'.$row['id'].'</td><td>'.$row['Nick'].'</td><td>'.$row['Temat'].'</td><td>'.$row['Komentarz'].'</td><td>'.'</td></tr>');
		
    }


}
$sql = "SELECT * FROM comm";

$sql .="LIMIT $start, $page";
$num_pages = ceil($sql / $per_page);

$prev = $page -1;
$next = $page +1;
if($prev>0)
{
echo "<a href='?page=$prev'>Prev</a>";
}

$number = 1;
for($number; $number <= $num_pages; $number+=1) {
if($page==$number){
echo "<b> [$number]</b>";
}else {
echo "<a href='?page=$number'>$number</a>";
 }
}
while ($row = $result->fetch_array(MYSQLI_NUM));
echo $row ['name']."<br>";

echo "&nbsp;";
if($page < ceil($sql / $per_page))
{
echo "<a href='?page=$next'>Next</a>";
}


$mysqli->close();

?>

Tam gdzie jest $sql /$page to w miejscu zmiennej $sql miało być $num_rows ale nie działa bo chciałem zastosować mysqli_num_rows($sql) i nie działa. Teoretycznie skrypt działa i jest w tabeli. Ale nadal nie wiem jak zrobić aby to działało.
Proszę o podpowiedź, co jest źle.

0

Do określenia ilości użyj "SELECT count(*) FROM comm". num_rows zwróci ci tyle ile zwraca zapytanie czyi jedną stronę.

0

Poradziłem sobie i napisałem od nowa a o to kod:

 
<?php
$mysqli = new mysqli("localhost", "root", "vertrigo", "test");
$mysqli->query ('set character set utf8');



if (mysqli_connect_errno()) {
    printf("Brak połączenia z bazą danych !", mysqli_connect_error());
    exit();
}



$record_count = $mysqli->query("SELECT * FROM comm");
$per_page=3;
$pages = ceil($record_count->num_rows / $per_page);
if(!isset($_GET['page']))
{
$page = 1;
} else{
$page = $_GET['page'];
}
if($page <= 0) 
{
 $start = 1;
} else 
{
 $start = $page * $per_page - $per_page;
}
$prev = $page -1;
$next = $page +1;



$query = "SELECT id, Nick, Temat, Komentarz FROM comm ORDER BY id ASC LIMIT $start, $per_page";

if ($result = $mysqli->query($query)) {

    
    while ($row = $result->fetch_assoc()) {

       echo ('<tr><td>'.$row['id'].'</td><td>'.$row['Nick'].'</td><td>'.$row['Temat'].'</td><td>'.$row['Komentarz'].'</td><td>');
		
    }


}
if($prev > 0)
{
echo "<a href='?page=$prev'>Prev </a>";
echo "&nbsp;";
}

$number = 1;
for($number; $number <= $pages; $number+=1) {
if($page==$number){
echo "<b> [$number]</b>";
}else {
echo "<a href='?page=$number'>&nbsp; $number</a>";
 }
}
if($page < $pages)
{
echo "&nbsp;";
echo "<a href='?page=$next'>Next</a>";
}



$mysqli->close();

?>