На странице сообщений, человек видет с кем ведется переписка, и при переходе в одну из переписок, он видит всю историю сообщений (примерно как в мэйл мире)
Помогите, как можно организовать таблицу и запрос к ней, а то всю голову сломал уже. Спасибо заранее.
Спустя 2 часа, 12 минут, 42 секунды (16.01.2009 - 12:28) FatCat написал(а):
|ID сообщения|Заголовок|Текст|время|от кого ID|кому ID|
Если пользователям разрешено сортировать сообщения по папкам, то еще и поле папки.
Если пользователям разрешено сортировать сообщения по папкам, то еще и поле папки.
Спустя 6 минут, 3 секунды (16.01.2009 - 12:34) IamSmorodin написал(а):
FatCat Спасибо, а вот вопрос по запросу, как организовать запрос, чтобы он вывел мне лишь список тех с кем у меня ведется переписка, а не все сообщения?
Спустя 15 минут, 3 секунды (16.01.2009 - 12:49) sergeiss написал(а):
Дык... В запросе укажи ограничение в виде "WHERE ....", где вместо многоточия - условие на выбор данных по конкретному человеку. Его идентификатор или еще что-то. В терминах сообщения от FatCat это будет 'от кого ID'
Спустя 41 минута, 52 секунды (16.01.2009 - 13:31) IamSmorodin написал(а):
sergeiss Нет, это я все понимаю, проблемма создать список людей, с кем я веду переписку.
Допустим, два человека написали мне и одному я (пусть это будут первые сообщения). Что получается. Мой ID = 1
от кого ID | кому ID
3 1
2 1
1 5
Но в списке тех, с кем я переписываюсь, должны отображаться все три записи. Вот в чем у меня проблемма. НЕ знаю, как запрос составить
Допустим, два человека написали мне и одному я (пусть это будут первые сообщения). Что получается. Мой ID = 1
от кого ID | кому ID
3 1
2 1
1 5
Но в списке тех, с кем я переписываюсь, должны отображаться все три записи. Вот в чем у меня проблемма. НЕ знаю, как запрос составить
Спустя 7 минут, 55 секунд (16.01.2009 - 13:39) sergeiss написал(а):
Допустим, эти поля называются id_from и id_to.
Тогда условие будет "WHERE id_from=1 or id_to=1".
Тогда условие будет "WHERE id_from=1 or id_to=1".
Спустя 11 минут, 56 секунд (16.01.2009 - 13:51) IamSmorodin написал(а):
sergeiss А потом я так понимаю, надо делать какую-то сортировку, так как записей вида 1-5 и 5-1 может быть очень много, то есть выборку
Спустя 8 минут, 43 секунды (16.01.2009 - 14:00) sergeiss написал(а):
"Ну дык, ёлы-палы" (с) ![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Сортируй. Выбирай. ORDER BY и LIMIT тебе в руки.
PS. Хоть и говорят, что нехорошо отправлять "к первоисточникам", но всё же почитай описание оператора SELECT и всех его опций. Тогда всё станет понятно.
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Сортируй. Выбирай. ORDER BY и LIMIT тебе в руки.
PS. Хоть и говорят, что нехорошо отправлять "к первоисточникам", но всё же почитай описание оператора SELECT и всех его опций. Тогда всё станет понятно.
Спустя 2 часа, 25 минут, 31 секунда (16.01.2009 - 16:25) FatCat написал(а):
ID сообщения сделать по инкременту, тогда сортировка по нему будет фактически соответствовать сортировке по дате/времени.
И лимитами резать на страницы по нужному количеству сообщений.
И лимитами резать на страницы по нужному количеству сообщений.
Спустя 9 минут, 55 секунд (16.01.2009 - 16:35) FatCat написал(а):
Для примера структура таблицы личных сообщений этого форума:
SQL |
CREATE TABLE `ibf_messages` ( `msg_id` int(10) NOT NULL auto_increment, `msg_date` int(10) default NULL, `read_state` tinyint(1) default NULL, `title` varchar(128) default NULL, `message` text, `from_id` mediumint(8) NOT NULL default '0', `vid` varchar(32) default NULL, `member_id` mediumint(8) NOT NULL default '0', `recipient_id` mediumint(8) NOT NULL default '0', `attach_type` tinyint(128) default NULL, `attach_file` tinyint(128) default NULL, `cc_users` text, `tracking` tinyint(1) default '0', `read_date` int(10) default NULL, PRIMARY KEY (`msg_id`), KEY `member_id` (`member_id`), KEY `vid` (`vid`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=0 ; |
`msg_id` - айдишник (порядковый номер)
`msg_date` - дата/время отправки
`read_state` - получает единичку при открытии получателем, дальше метится как прочитанное.
`title` - заголовок
`message` - текст письма
`from_id` - от кого
`vid` - входящее или исходящее
`member_id` - айдишник владельца ящика
`recipient_id` - айдишник получателя
`attach_type`- миме-тип аттача
`attach_file` - приаттаченный файл
`cc_users`- айдишники получателей копии при массовой рассылке
`tracking` - Оповещать на мейл
`read_date` - время прочтения
Но это навороченная система, не знаю, нужно ли топикстартеру так сложно.
_____________
Мой Twitter
Подписывайтесь :)