У меня есть этот php-код, который извлекает изображения из базы данных с использованием идентификатора пользователя, а затем отображает все изображения в виде списка. я пытаюсь разбить изображения на страницы, не более 5 элементов на странице. но код показывает только первую страницу без ссылки на другие страницы. вот мой php-код
<?php
include 'connect.php';
$Category = " ";
$query = "SELECT Img_dir, Caption, Category FROM images WHERE Category = '". $_REQUEST['Category'] ."' AND user_id = '". $_SESSION['user_id'] ."' LIMIT 0,5";
$result = mysqli_query($conn,$query);
while ($row=mysqli_fetch_array($result)){
$image = $row["Img_dir"];
$Caption= $row["Caption"];
$Category = $row["Category"];
echo "<dl>";
echo "<dd>$Category    <img src='base64_encode($image)' />   $Caption<dd>";
echo "</dl>";
}
//number of total pages available
$results_per_page = 10;
$number_of_results = mysqli_num_rows($result);
echo $number_of_pages = ceil($number_of_results / $results_per_page);
echo "<br>"; echo "<br>";
for($r=1;$r<=$number_of_pages;$r++)
{
?><a href = "dashboard.php?page=<?php echo $r;?>" style = "text-decoration:none"><?php echo $r." "; ?></a><?php
}
?>
Ваш sql-запрос имеет жестко закодированное ограничение 0,5, что означает, что он всегда возвращает 5 записей. Чтобы разбивка на страницы работала, вам нужно будет снова вызвать свой php-код для каждой страницы. Затем вы напишете запрос, который будет возвращать строки на основе выбранного набора страниц.
@tim, если вы хотите быть педантичным в этом, это может быть printf('<a href = "dashboard.php?page=%d" style = "text-decoration:none">%d</a>', $r, $r);, но на самом деле ответ - правильный движок шаблонов.
Вам понадобится один дополнительный запрос в дополнение к наблюдению @NawedKhan для вашего лимита. Ваш дополнительный запрос не будет ограничен, потому что он будет использоваться для получения общего количества результатов. Используя один запрос, вы всегда получите общее количество результатов, соответствующее вашему лимиту.
@NawedKhan, если я удалю LIMIT, он отобразит разбивку на страницы внизу, но не будет соответствовать 10 результатам на странице.
Как упомянул @imvain2, это не так просто, как у вас. Вам понадобится как минимум 2 запроса, один для подсчета и один для лимита. Это более вовлечено. Прочтите этот учебник: tutorialspoint.com/php/mysql_paging_php.htm и немного больше изучите разбиение на страницы с помощью php и mysql.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


ваш синтаксис повсюду
?><a href = "dashboard.php?page=<?php echo $r;?>" style = "text-decoration:none"><?php echo $r." "; ?></a><?phpдолжен бытьecho '<a href = "dashboard.php?page='.$r.'" style = "text-decoration:none">'.$r.'</a>';