首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP - Mysql select和OR

PHP - Mysql select和OR
EN

Stack Overflow用户
提问于 2013-09-24 12:26:25
回答 2查看 90关注 0票数 0

我有这个PM系统,用户可以在这里相互书写。当我在MySQL表中显示可用的PM时,deleted_senderdeleted_receiver

如果deleted_sender是1,那么发送PM的人就不能在列表中看到它。如果deleted_receiver是1,那么接收PM的人就不能看到它。

我的问题是,如何使用mysql查询来完成这个任务?目前,我有以下几点:

代码语言:javascript
运行
复制
$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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-24 12:29:39

好吧,想想你想要做什么:如果发送者没有删除它,你想要把它展示给发送者,对于接收者,反之亦然。

换句话说,你想要显示

(发件人=用户和发件人未删除)或(接收方=用户和接收方未删除)

在此基础上构建查询:

代码语言:javascript
运行
复制
... WHERE (`sender_id`={$userdata['id']} AND `deleted_sender`=0)
       OR (`receiver_id`={$userdata['id']} AND `deleted_receiver`=0)
票数 3
EN

Stack Overflow用户

发布于 2013-09-24 12:30:31

代码语言:javascript
运行
复制
    $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')"
);

而且,这可能以无效的结果结尾,因为您不知道结果是关于发送或接收.取决于你喜欢的显示器。但你可能得提出两个不同的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18981593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档