1

I have a problem with creating an inbox System. What i'm trying to do is in "ViewMessages.php" I am trying to pull information from a MYSQL Table to show messages.

My First Statement is:

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

But I realised a flaw, it will only show messages sent 1 way. I Tried something like:

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

This failed. Can anyone shed some light to show both messages from both parties?

4

4 に答える 4

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 やタイムスタンプのようなものが添付されていることを期待して、クエリの最後に使用できます。

于 2012-11-05T14:50:52.000 に答える
1

ブール演算子が混同されています。その中に () をいくつか入れてみてください.. (a AND b) OR (c AND d)。

また、達成したいことは、あなたと他の連絡先との間のすべてのメッセージを取得することです。あなたはそれを知っていますか?

于 2012-11-05T14:50:49.657 に答える
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')
于 2012-11-05T14:52:09.210 に答える
0

これを試して:

$MessageQuery = mysql_query("SELECT * FROM メッセージ WHERE ToUName='$ToUName' || FromUName='$FromUName'");

于 2012-11-05T14:51:08.737 に答える