PHP收件箱系统

时间:2012-11-05 14:47:54

标签: php mysql sql

我在创建收件箱系统时遇到问题。 我想要做的是在“ViewMessages.php”中我试图从MYSQL表中提取信息来显示消息。

我的第一个声明是:

    $MessageQuery = mysql_query("SELECT * FROM messages WHERE ToUName='$ToUName' AND FromUName='$FromUName'");

但是我意识到了一个缺陷,它只会显示1路发送的消息。我尝试过这样的事情:

    $MessageQuery = mysql_query("SELECT * FROM messages WHERE ToUName='$ToUName' AND FromUName='$FromUName' OR FromUName='$ToUName' AND ToUName='$FromUName'");

这失败了。任何人都可以透露来自双方的消息吗?

4 个答案:

答案 0 :(得分:3)

工会怎么样?

$MessageQuery = mysql_query("(SELECT * FROM messages WHERE ToUName='$ToUName' AND FromUName='$FromUName') UNION (SELECT * FROM messages WHERE FromUName='$ToUName' AND ToUName='$FromUName')");

注意:如果您需要以任何特定顺序发送消息,可以在查询结束时使用ORDER BY,希望您有类似message_id或timestamp的内容。

答案 1 :(得分:1)

你混淆了布尔运算符,尝试将some()放入...(a AND b)OR(c AND d)。

您所要完成的工作就是获取您与另一位联系人之间的所有消息。你知道吗?

答案 2 :(得分:1)

SELECT * 
FROM messages
WHERE '$ToUName' in (ToUName, FromUName)
OR '$FromUName' in (ToUName, FromUName)

或者您更喜欢查询中首先列出的列

SELECT * 
FROM messages
WHERE ToUName in ('$ToUName', '$FromUName')
OR FromUName in ('$ToUName', '$FromUName')

答案 3 :(得分:0)

试试这个:

$ MessageQuery = mysql_query(“SELECT * FROM messages WHERE ToUName ='$ ToUName'|| FromUName ='$ Fromuname'”);