Php 多用户单向支持票务系统

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

我正在尝试用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` 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。谢谢