Php 多用户单向支持票务系统
我正在尝试用php和mysql做一个非常简单的单向票务/新闻系统,在我的应用程序上发布新闻(比如:“维护星期五晚上10点到11点”)。 起初,我认为它只需要一个简单的表:Php 多用户单向支持票务系统,php,jquery,mysql,ajax,feed,Php,Jquery,Mysql,Ajax,Feed,我正在尝试用php和mysql做一个非常简单的单向票务/新闻系统,在我的应用程序上发布新闻(比如:“维护星期五晚上10点到11点”)。 起初,我认为它只需要一个简单的表: CREATE TABLE IF NOT EXISTS `message` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` varchar(18) NOT NULL, `subject` varchar(200) NOT NULL, `message` varc
CREATE TABLE IF NOT EXISTS `message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` varchar(18) NOT NULL,
`subject` varchar(200) NOT NULL,
`message` varchar(1000) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`recipient` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`read` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
管理员创建新新闻并通过多选选择收件人
<select multiple="multiple" name=[]dest >
<option value="all">All users</option>
<option value="1">User_1</option>
<option value="2">User_2</option>
<option value="n">User_n</option>
</select>
所有用户
用户1
用户2
用户
“dest”将内爆并更新为“message.recipient”
用户可以查看新闻:
SELECT * FROM message m WHERE m.recipient='all' or m.recipient RLIKE '[[:<:]]".$userID."[[:>:]]'"
从消息m中选择*,其中m.recipient='all'或m.recipient RLIKE'[[::]]”
当用户单击新闻并阅读它时,我的问题就开始了,因为我使用“1”消息进行更新。通过jQuery Ajax读取,并分别取消绑定新闻,但是。。。
这是错误的,因为当第一个用户阅读新闻时,它会将其他用户标记为已读
我知道我可以创建其他表,存储未读新闻的userID和message.id,并在阅读时删除,但这不是一个非常优雅的解决方案
任何建议都将不胜感激
谢谢大家!!
Leo您可以在会话或cookie中存储“读取”标志。这样,每个用户都有自己的标志
还有一件事:
<select multiple="multiple" name=[]dest >
应该是
<select multiple="multiple" name="dest[]" >
如果您想在PHP中使用正确的数组。是的。键入错误,抱歉。关于会话标志,我喜欢ideea。谢谢