我在创建收件箱系统方面有问题。我要做的是在" ViewMessages.php"中,我正在尝试从MySQL表中提取信息以显示消息。
我的第一个声明是:
$MessageQuery = mysql_query("SELECT * FROM messages WHERE ToUName='$ToUName' AND FromUName='$FromUName'");
但是我意识到一个缺陷,它只会显示消息发送的消息。我尝试了类似的东西:
$MessageQuery = mysql_query("SELECT * FROM messages WHERE ToUName='$ToUName' AND FromUName='$FromUName' OR FromUName='$ToUName' AND ToUName='$FromUName'");
这失败了。任何人都可以放一些灯光以显示双方的两条消息吗?
联合怎么样?
$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或附加的时间戳之类的内容。
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')
您混合了布尔运算符,尝试将一些()放入..(a和b)或(c和d)。
。您还可以在您和另一个联系人之间收到所有消息。您知道吗?
尝试以下:
$ messagequery = mysql_query("从消息中select * touname ='$ tuname'|| fromuname ='$ fromuname'");