#php #pagination #navigation
Вопрос:
У меня проблема с разбиением на страницы с помощью PHP с помощью кнопки «Предыдущий» и «Следующий». Мой код работает для кнопки «Предыдущая» (когда вы находитесь на первой странице, вы не можете перейти на предыдущую страницу. Но я хочу остановить разбиение на страницы, когда статей больше не будет. Но в моем коде по-прежнему можно открывать новые страницы, даже если они пусты.
$toto-это динамическая переменная, которая изменяется вместе с базой данных. Поэтому я не могу назвать только номер.
<?php $previousPpage; $nextPage; $toto;
// CODE A EXTERNALISER ET METTRE EN PAGE N° DE PAGE
$pdoStatement = $pdo->prepare('SELECT COUNT(*) AS totalMessages FROM messages');
if ($pdoStatement->execute()) {
$totalMessages = $pdoStatement->fetch(PDO::FETCH_ASSOC);
function getPreviousPage()
{
if (isset($_GET['page']) amp;amp; $_GET['page'] > 1) {
$previousPage = $_GET['page'] - 1;
} else {
$previousPage = 1;
}
return $previousPage;
}
$toto = ceil($totalMessages['totalMessages']);
$toto = intval($toto);
var_dump($toto); // RETURN a int
function getNextPage()
{
if (isset($_GET['page']) amp;amp; $_GET['page'] < $toto) { // code error undefined variable $toto
$nextPage = $_GET['page'] 1;
} else {
$nextPage = $_GET['page'];
}
return $nextPage;
}
echo '<nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
<li>
<a class="page-link" href="?page=' . getPreviousPage() . '" aria-label="Previous">
<span aria-hidden="true">amp;laquo;</span>
</a>
</li>';
for ($i = 1; $i <= ceil($totalMessages['totalMessages'] / 10); $i ) {
echo '<li><a class="page-link" href="?page='. $i . '">' . $i . '</a></li>';
}
echo '<li>
<a class="page-link" href="?page=' . getNextPage() . '" aria-label="Next">
<span aria-hidden="true">amp;raquo;</span>
</a>
</li>
</ul>
</nav>';
}
?>
Когда я делаю var_dump между getPreviousPage() и функцией getNextPage (), она возвращает мне значение int, так что это хорошо.
Но когда я вызываю функцию getNextPage() в эхе, она не работает, и это говорит мне
Warning: Undefined variable $toto inC:xampphtdocscopy-twitterview.php on line 76
Строка 76 соответствует
if (isset($_GET['page']) amp;amp; $_GET['page'] < $toto)
Я попытался поставить глобальный перед инициализацией, но безуспешно
У кого-нибудь есть идея ?
Комментарии:
1. Вы пробовали добавить
global $toto;
функцию getNextPage() внутри? Или просто измените свою функцию наfunction getNextPage($toto) { }
и передайте$toto
в качестве аргумента в функции,getNextPage($toto)
?