|
|
|
| При написании форума столкнулся с проблемой сортировки тем в разделе.. Дело в том, что мне нужно что бы темы сортировались по последнему сообщению в теме. То есть, зашел в нижнюю тему, добавил сообщение, и тема оказалась в самом верху раздела.. Уже четвертый день мучаюсь, не получается у меня организовать это.. Кто то сталкивался с такой проблемой? Поделитесь опытом,.. Форум на мускуле,.. | |
|
|
|
|
|
|
|
для: Oberon
(05.10.2007 в 08:59)
| | При запросе сообщений из базы выберите порядок сортировки DESC. | |
|
|
|
|
|
|
|
для: sim5
(05.10.2007 в 09:15)
| | DESC просто отсортирует темы в убывающем порядке. У меня ситуация немного сложнее.. Нужно отсортировать темы именно по дате последнего сообщения, оставленного в теме. Сложность в том, что Темы и Сообщения находятся в разных таблицах. | |
|
|
|
|
|
|
|
для: Oberon
(05.10.2007 в 08:59)
| | Понятия не имею как пишутся форумы. Но я бы сделал так.
в таблице темы рядом с айди ябы сделал поле в которое писал время добавления последнего поста в теме. И сортируйте наздоровье как угодно. | |
|
|
|
|
|
|
|
для: Valick
(05.10.2007 в 09:17)
| | Так, спасибо. Почему то сразу я об этом не подумал, | |
|
|
|
|
|
|
|
для: Oberon
(05.10.2007 в 09:23)
| | можно сделать запрос немного сложнее и не добавлять новых полей. тем более эти поля будут избыточными (дата последнего сообщения итак есть в таблице с сообщениями, зачем ее еще в таблицу с темами добавлять). | |
|
|
|
|
|
|
|
для: RV
(05.10.2007 в 09:47)
| | Именно такой запрос я и хотел сделать. Смекалки не хватает... А вообще, хотелось бы конечно обойтись одним запросом, нежели лишнее поле создавать, | |
|
|
|
|
|
|
|
для: Oberon
(05.10.2007 в 10:07)
| | Я просто думал, что выборка в этом случае(при добавлении нового поля) была бы быстрее, может я и не прав. | |
|
|
|
|
|
|
|
для: Valick
(05.10.2007 в 10:25)
| | Запрос зависет от того, какой у вас уже имеется, от таблиц и имен столбцов | |
|
|
|
|
|
|
|
для: RV
(05.10.2007 в 11:22)
| | таблицы выглядят примерно следующим образом:
CREATE TABLE `forum_msg` (
`id` int(11) NOT NULL auto_increment,
`msg` text NOT NULL,
`date` text NOT NULL,
`time` text NOT NULL,
`theme_id` int(11) ////////////////// `theme_id` (`forum_msg`) == `id` (`forum_theme`)
CREATE TABLE `forum_theme` (
`id` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`date` text NOT NULL,
`time` text NOT NULL,
`part_id` int(11) ///////////////// `part_id` (`forum_theme`) == `id` (`forum_part`)
|
текущий запрос пока что просто сортирует темы по убыванию, выглядит примерно так:
mysql_query("select * from `forum_theme` where `part_id` = '$id' ORDER BY `id` DESC")
|
| |
|
|
|
|
|
|
|
для: Oberon
(05.10.2007 в 11:55)
| | Ничего у вас не получится, поле date должно быть календарного типа (DATE) а не текстового | |
|
|
|