как получить предыдущую/следующую записи
Всех приветствую! Есть php код, в котором я с помощью GET запроса получаю id новости, а потом добавляю кнопки перехода к предыдущей и/или к следующей записи через обращение к БД (в БД столбец id serial)
Принцип такой: если есть запись id-1, то кнопка Предыдущая запись появляется, аналогично и с id+1
$prev_sql = "SELECT * FROM $dbtable WHERE id=" . ($_GET['id'] - 1);
$next_sql = "SELECT * FROM $dbtable WHERE id=" . ($_GET['id'] + 1);
$prev_result = $conn->query($prev_sql)->fetch_assoc();
$next_result = $conn->query($next_sql)->fetch_assoc();
if ($prev_result || $next_result) {
echo '<div class="prev-next-btns">';
echo $prev_result ? '<a class="nav-link" href="news_example.php?id=' . ($_GET['id'] - 1) . '">← Предыдущая новость</a>' : '';
echo $next_result ? '<a class="nav-link" href="news_example.php?id=' . ($_GET['id'] + 1) . '">→ Следующая новость</a>' : '';
echo '</div>';
}
Проблема в том, что при удалении записи пустой id ничем не заполняется, т. е. так и остаётся пустым. Например, есть записи 1, 2, 3. Я удаляю 2 запись. Новые записи будут начинаться с 4. Понимаю, что код, который я написал работает правильно, но как брать именно предыдущую/следующую существующую запись я не знаю
Думал, может написать триггер в БД, который будет сдвигать id на "-1" при удалении записи или пересмотреть сам запрос. Я ещё учусь, поэтому буду рад разумной критике