이 코드는 첫 페이지에서 잘 작동하지만 LIMIT는 FetchAll()에 영향을 미치지 않는 것으로 보입니다. 그럼 내 질문은 : fetchAll()에는 행 수를 제한하는 선택적 인수가 있습니까? 또는이 문제를 해결하기위한 더 좋은 방법을 제안하십시오.PHP 페이지 매기기 fetchAll() 및 LIMIT
<html>
<body>
<?php
require_once('connection.php');
$rowsCount = $connection->query('SELECT COUNT(*) FROM test')->fetchColumn();
$page = 1;
$perPage = 10;
if (isset($_GET["page"]) and $_GET["page"] >= 1 and $_GET["page"] <= 10) {
$page = (int) $_GET["page"];
}
$beginning = ($page-1) * $perPage;
$end = $page * $perPage;
$sql = "SELECT * FROM test LIMIT $beginning, $end";
?>
<table border = '2'>
<tr>
<th width="30%">ID</th>
<th width="70%">TEXT</th>
</tr>
<?php
// echo '<pre>';
// print_r($connection->query($sql)->fetch());
// echo $sql;
// echo '<pre>';
foreach ($connection->query($sql) as $value) {
echo '<tr height ="50px"><td>' . $value['id'] . '</td><td>' . $value['text'] . '</td></tr>';
}
?>
</table>
<p>
<?php if($page > 1){ ?>
<a href="pagination.php?page=<?php echo $page-1;?>" >Previous</a>
<?php } ?>
<a href="pagination.php?page=<?php if($page < ceil($rowsCount/$perPage)){ echo $page+1;} else {echo 1;}?>" >Next</a>
</p>
</body>
</html>