我想为我的用户做一个函数,所以在index.php上有例如:
您的剪辑有2条新评论
我该怎么做?我的意思是我想要想法以最简单的方式做到这一点。视频表是member_videos,评论表是member_videocomments,表中的注释通过“videoID”连接,这是member_videos中列的id。
我应该做经典,制作一个全部为0的字段,直到用户看到它的1或我应该做什么。
答案 0 :(得分:3)
每条评论的unread
标志的一个替代方案是用户记录上的last_read_comments
时间戳。每当他们阅读新评论时,请将时间戳更新为当前时间。当他们登陆您的主页时,查询比该时间戳值更新的所有评论。
答案 1 :(得分:0)
为什么不在根据类似
之类的评论表加载视频时进行检查SELECT COUNT(*) FROM member_videocomments WHERE videoID = videoIDLoaded;
然后将结果集作为整数返回并检查该整数是否等于0,如果是则显示0,否则查询数据库以获取结果集并显示页面上的所有注释你喜欢。
答案 2 :(得分:0)
只需更新表格member_videocomments
中的字段,例如readbyuser
。将其保留为零,直到用户查看该特定注释。
$result = mysql_query("SELECT id FROM member_videocomments WHERE !readbyuser");
$num_rows = mysql_num_rows($result);
答案 3 :(得分:0)
你自己给出了答案。只需在实际向用户显示注释时标记注释。假设不会同时查看新评论,而是按视频剪辑查看,我认为时间戳方法不是一个好的解决方案,因为当用户打开其中一个新评论的视频后更新时间戳时,您将丢失跟踪其他新评论。
答案 4 :(得分:0)
我有类似的情况,我正在使用is_read
标志。将注释添加到数据库后,is_read
将设置为0
。当用户登录时,我会检查是否有任何未读评论(在这里我抓住了未读评论的数量,以便我可以显示它)。然后,当他们查看评论时,我会抓取评论的ID并运行查询以将is_read
设置为1
。
马修的时间戳解决方案也很好,所以真的取决于你感觉更舒服。