我有这个PM系统,用户可以在这里相互书写。当我在MySQL表中显示可用的PM时,deleted_sender和deleted_receiver
如果deleted_sender是1,那么发送PM的人就不能在列表中看到它。如果deleted_receiver是1,那么接收PM的人就不能看到它。
我的问题是,如何使用mysql查询来完成这个任务?目前,我有以下几点:
$r=mysql_query("
SELECT * FROM private_messages
WHERE
sender_id='".$userdata['id']."'
OR
receiver_id='".$userdata['id']."'
AND
(deleted_receiver='0' OR deleted_sender='0')");不过,这只是在发送方和接收方都显示了PM。
发布于 2013-09-24 12:29:39
好吧,想想你想要做什么:如果发送者没有删除它,你想要把它展示给发送者,对于接收者,反之亦然。
换句话说,你想要显示
(发件人=用户和发件人未删除)或(接收方=用户和接收方未删除)
在此基础上构建查询:
... WHERE (`sender_id`={$userdata['id']} AND `deleted_sender`=0)
OR (`receiver_id`={$userdata['id']} AND `deleted_receiver`=0)发布于 2013-09-24 12:30:31
$r = mysql_query(
"SELECT * FROM private_messages
WHERE (sender_id='".$userdata['id']."' AND deleted_sender='0')
OR (receiver_id='".$userdata['id']."' AND deleted_receiver='0')"
);而且,这可能以无效的结果结尾,因为您不知道结果是关于发送或接收.取决于你喜欢的显示器。但你可能得提出两个不同的要求。
https://stackoverflow.com/questions/18981593
复制相似问题