Я не уверен, как именно это называется, но я постараюсь описать как можно лучше то, что я хочу достичь.
Итак, во-первых, есть переменная с именем $id
, которая на самом деле $_GET['id']
. Предполагая, что пользователь заходит на следующую страницу с запросом: /page.php?id=6
. Теперь мне нужно предоставить информацию о следующих трех страницах из базы данных. Вот база данных:
TABLE `pages`
id | page_name
______________________
1 | AAAAA
2 | BBBBB
3 | CCCCC
4 | DDDDD
5 | EEEEE
6 | FFFFF
7 | GGGGG
8 | HHHHH
9 | IIIII
Итак, при запросе страницы с идентификатором 6
следующий скрипт возвращает следующие 3 страницы (7,8,9):
$res = mysql_query("SELECT * FROM `pages` WHERE `id`>'".intval($id)."' ORDER BY `id` DESC LIMIT 3");
while($arr = mysql_fetch_assoc($res))
{
print("Page ID: ".$arr['id']."; Page Name: ".$arr['page_name']."\n");
}
А вот и вывод:
Page ID: 7; Page Name: GGGGG
Page ID: 8; Page Name: HHHHH
Page ID: 9; Page Name: IIIII
И он работает нормально до тех пор, пока $id
не станет больше 6. Когда он равен (/page.php?id={7/8/9}
), на выходе больше не будет отображаться 3 страницы, а на 2 страницах, 1 странице и, соответственно, нет вывода, когда $id
is 9
.
Итак, мой вопрос: есть ли способ вернуться назад и начать с самого начала, когда недостаточно результатов (меньше 3) для отображения?
- При доступе к
/page.php?id=8
вывод должен содержать страницы с идентификаторами 9
, 1
и 2
.
- При доступе к
/page.php?id=9
вывод должен содержать страницы с идентификатором 1
, 2
, 3
.
- При доступе к
/page.php?id=3
вывод должен содержать страницы с идентификатором 4
, 5
, 6
и т. Д.