Помогите реализовать

EA
На сайте с 15.02.2007
Offline
29
430

Доброе время суток.

Помогите реализовать.

Есть таблица с данными, при просмотре страницы посетитель должен увидеть последнюю строчку из БД (по дате, не по id), потом перейти по ссылке и увидеть предыдущую, и так далее. Данных будет очень много, и они будут постоянно добавляться, посетитель не должен видеть то, что уже видел, вот это я не знаю, как сделать, помогите, пожалуйста.

Заранее спасибо.

"Конкурс" (/ru/forum/201132) и "Фото конкурс" (/ru/forum/212504) для DLE.
T.R.O.N
На сайте с 18.05.2004
Offline
314
#1

el_aspect,

На мой взгляд - варианта 2.

1. Пользователь должен авторизоваться. Тогда на сревере ведется база, в которой указанны записи, которые уже не нужно показывать.

2. Вся информация о том что смотрелось конкретным пользователем хранится в куках на его компе. А при следующих заходах, сервер получив куки, решает что показывать что нет.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Rudokop
На сайте с 29.07.2008
Offline
90
#2

Тебе нужно подробнее описать, что требуется. Правильно заданный вопрос -- это уже половина ответа. Разбивай задачу на более мелкие:

просмотре страницы посетитель должен увидеть последнюю строчку из БД

Выпис из базы ни от каких параметров не зависит, так?

В чём конкретно сложность? Ты знаешь, как с помощью выбранного языка программирования делать запрос в базу и "разбирать" ответ? SQL ты знаешь?

потом перейти по ссылке и увидеть предыдущую, и так далее

по какой ссылке, куда она ведёт? Предыдущую что? Предыдущую относительно чего?

EA
На сайте с 15.02.2007
Offline
29
#3
Выпис из базы ни от каких параметров не зависит, так?

Долна выбираться строчка с наиболее поздней датой.

по какой ссылке, куда она ведёт? Предыдущую что? Предыдущую относительно чего?

Это уже частично сделано, сделано через ajax. Принцып примерно такой: юзер тыкает на картинку и показывается следующая.

В чём конкретно сложность? Ты знаешь, как с помощью выбранного языка программирования делать запрос в базу и "разбирать" ответ? SQL ты знаешь?

Да, с этим всё понятно.

Сложность в этом:

Данных будет очень много, и они будут постоянно добавляться, посетитель не должен видеть то, что уже видел

К примеру юзер может посмотерть 100-1000 картинок

el_aspect добавил 04.12.2008 в 13:38

С куками я пока не дружу, и не знаю как их использовать

Givandos
На сайте с 25.06.2007
Offline
33
#4

Если правильно понял, то пользователь зайдя на сайт получает самую последнюю на данный момент запись. И уже от неё начинает шагать "назад" по записям, независимо от того, добавились ли ещё записи во время его "путешествий" !

Если Ваш ответ "Да", то:

Выбираете записи из БД с сортировкой по дате записи (сортировка по убыванию) и лимитом записей в 2-е строки (... ORDER BY data LIMIT 2). После этого выдаете пользователю страницу с первой из двух выбранных строк. Также выдаете ему ссылку с GET-параметром, указывающим на строку с "предпоследней датой" (например, с параметром index.php?data=12.03.08_17:53:27. параметр - это форма Вашей записи даты в БД. Хотя можно её немного изменить, а потом при получении GET-параметра представить до вида, в котором запись хранится в БД).

После нажатия пользователем на ссылку идет загрузка страницы, в которой проверяется наличие указанного нами GET-параметром, и если все ок, то снова запрос в базу, и снова лимит в 2-е строки, и сортировка та же. Вот только теперь уже нужно не забыть добавить условие выборки. Итого, получаем примерно такое: ... WHERE data < $_GET['data'] ORDER BY data LIMIT 2

С этими данными делаем то же что и с предыдущими. Вот, собственно, и все :)

EA
На сайте с 15.02.2007
Offline
29
#5
И уже от неё начинает шагать "назад" по записям, независимо от того, добавились ли ещё записи во время его "путешествий" !
Если Ваш ответ "Да", то:

Увы, но ответ "Нет" :)

Ваш вариант уже реализован, но к сожалению не подходит.

И ещё проблема, если юзер начнёт смотреть страницы заного, к примеру завтро, то после просмотра новых записей он увидит и старые которые уже смотрел.

1. Пользователь должен авторизоваться. Тогда на сревере ведется база, в которой указанны записи, которые уже не нужно показывать.

Авторизация не подходит.

2. Вся информация о том что смотрелось конкретным пользователем хранится в куках на его компе. А при следующих заходах, сервер получив куки, решает что показывать что нет.

Проблема в том, что юзер может посмотреть 1000 записей, в куки всё не влезет.

el_aspect добавил 04.12.2008 в 14:13

Я, кажется, видел, где то, что то наподобие:

Толи новости, толи темы на форуме, или что-то в этом роде. Юзер смотрит их и потом, когда возвращается к списку, он видит, какие читал, какие нет. Посмотреть бы тот алгоритм, думаю, он бы подошел как основа.

Givandos
На сайте с 25.06.2007
Offline
33
#6

Хм, то есть, если я сегодня просмотрю страницу с двумя симпатичными блондинками, а завтра приглашу друзей на показ этих сис... кх... этой странички, то по приходу онных ко мне домой получиться, что я не смогу им показать её, потому как она уже не будет мне доступна (по крайней мере в навигации на сайте) ? Некрасиво перед друзьями будет :(

EA
На сайте с 15.02.2007
Offline
29
#7

Вроде того :)

el_aspect добавил 05.12.2008 в 11:41

Хоть идейку подкиньте, в каком направлении вобще идти

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий