我已经构建了一个私人消息系统,并希望将所有ID分组为:
使用姓名(ID)和消息计数,点击用户后,它将打开它们之间所有消息历史的历史记录。到达时的新消息将使用户在计数增加的同时增加新消息和聊天记录。我怎么做?
我已经分享了这个http://sqlfiddle.com/#!2/7b13a/1。但是我无法获得代码或程序来实现它。 我非常感谢任何帮助。谢谢你。
代码:
CREATE TABLE if not exists tblA
(
id int(11) NOT NULL auto_increment ,
sender varchar(255),
receiver varchar(255),
msg varchar(255),
date timestamp,
PRIMARY KEY (id)
);
INSERT INTO tblA (sender, receiver,msg,date ) VALUES
('1', '2', 'buzz ...','2011-08-21 14:11:09'),
('1', '2', 'test ...','2011-08-21 14:12:19'),
('1', '2', 'check ...','2011-08-21 14:13:29'),
('1', '1', 'test2 ...','2011-08-21 14:14:09'),
('2', '1', 'check2 ...','2011-08-21 14:15:09'),
('2', '1', 'test3 ...','2011-08-21 14:16:09'),
('1', '2', 'buzz ...','2011-08-21 14:17:09'),
('1', '2', 'test ...','2011-08-21 14:18:19'),
('1', '2', 'check ...','2011-08-21 14:19:29'),
('1', '1', 'test2 ...','2011-08-21 14:10:09'),
('3', '1', 'check2 ...','2011-08-21 14:21:09'),
('3', '1', 'test3 ...','2011-08-21 14:22:09'),
('3', '2', 'buzz ...','2011-08-21 14:24:09'),
('3', '2', 'test ...','2011-08-21 14:25:19'),
('1', '3', 'check ...','2011-08-21 14:26:29'),
('1', '3', 'test2 ...','2011-08-21 14:27:09'),
('2', '3', 'check2 ...','2011-08-21 14:28:09'),
('2', '3', 'test3 ...','2011-08-21 14:29:09'),
('1', '2', 'check3 ...','2011-08-21 14:23:09');
总结:
1.将所有用户分别与所有用户分组并计算ORDER BY日期DESC
对于EG: 一项新功能是将Facebook等消息整合在一起。让我们说:
user A is sending user B a message
user B is replying to A
User A is sending user C a Message
user D is sending user A a message
因此用户A必须有三个用户块:B,C,D用于显示。 B包括(1,2),C包括(3),D包括(4),即使C不答复A(3)而A不答复D(4)。
同样点击每个用户,它将打开他们的消息历史记录。