|
|
|
| Здравствуйте.
Пишу форум (php и mysql).
Подскажите как лучше реализовать подъем темы в форуме?
Допустим тема находится снизу, а когда в неё кто-то написал, то она поднимается вверх. | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 22:33)
| | в таблице, где хранятся темы, сделать поле типа datetime, например, upd куда заносить дату последнего последнего добавления сообщения в эту тему. И, собственно, при выборке тем сортировать по данному полю в порядке убывание (ORDER BY upd DESC) | |
|
|
|
|
|
|
|
для: ols
(30.10.2009 в 22:42)
| | Такой вариант у меня был :)
Ну а допустим, если мы удаляем это самое последнее сообщение, то тема так-же вверху и остается :) | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 23:00)
| | Можно соорудить сложный заппрос, для каждой темы получать дату последнего поста (из таблицы с постами), и по ним уже сортировать ) | |
|
|
|
|
|
|
|
для: Andrey__v
(30.10.2009 в 23:20)
| | А это не будет нагрузку давать? | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 23:43)
| | Конечно будет больше чем в первом способе )
Вобщем либо думаете сами и делаете обновление поля при удалении, либо за вас будет думать сервер ) | |
|
|
|
|
|
|
|
для: Andrey__v
(31.10.2009 в 00:39)
| | > либо за вас будет думать сервер )
вот именно думать :) | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 23:00)
| | Ну Вы же удалите сообщение, а перед ним есть предпоследнее сообщение, которое после удаление будет считаться последним. Так вот извлекайте из него дату его добавления и обновляйте поле upd в данной теме. | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 23:00)
| | Бр-р.. а зачем удалять сообщение?
Кроме того, последнее событие все равно останется в этой теме. | |
|
|
|
|
|
|
|
для: Trianon
(31.10.2009 в 00:44)
| | >Бр-р.. а зачем удалять сообщение?
Я кстати тоже не понимаю. Можно просто скрывать. | |
|
|
|
|
|
|
|
для: Trianon
(31.10.2009 в 00:44)
| | Ну допустим спам удалять. | |
|
|
|
|
|
|
|
для: Брянский
(30.10.2009 в 22:33)
| | Ладно. Всем спасибо!
Думаю что-нибудь сам придумаю ;-) | |
|
|
|
|
|
|
|
для: Брянский
(31.10.2009 в 09:52)
| | В принцепе у меня получилось по первому варианту, даже показалось легко!
1. Сперва, создал 2 дополнительных столбца в таблице новостей
1. дата опубликации комментария post_date
2. имя автора комментария name_post
2. В форме добавления комментария создал 2 невидимых(hidden) поля c name=post_date и name=name_post
3. Новости вывел в сортировке ORDER BY post_date DESC
Для того чтобы при добавлении самой новости она не оказалась в конце, так как в ней нет комментария и нет автора! По этому сделал так чтобы автор новости как бы был и автором комментария по умолчанию и дата проставлялась такая же как и сама дата опублкации новости, тогда новость будет сверху! | |
|
|
|