Php 按时间顺序显示来自两个用户的消息

Php 按时间顺序显示来自两个用户的消息,php,mysql,for-loop,Php,Mysql,For Loop,我的问题是我想在两个用户之间显示消息并按时间排序。 我试图显示来自每个用户的消息,但它首先为用户George和用户Niklakis显示,如下图所示。。。 我想要的是按时间顺序显示这两条消息。 这是我代码的一部分 $query = "SELECT * FROM messages WHERE recip='$view' ORDER BY time DESC"; $query2 = "SELECT * FROM messages WHERE recip='$username' O

我的问题是我想在两个用户之间显示消息并按时间排序。 我试图显示来自每个用户的消息,但它首先为用户George和用户Niklakis显示,如下图所示。。。

我想要的是按时间顺序显示这两条消息。 这是我代码的一部分

$query  = "SELECT * FROM messages WHERE recip='$view' ORDER BY time DESC";
        $query2  = "SELECT * FROM messages WHERE recip='$username' ORDER BY time DESC";
        $result = queryMysql($query);
        $result2 = queryMysql($query2);
        $num    = mysql_num_rows($result);
        $num2    = mysql_num_rows($result2);

        for ($j = 0 ; $j < $num ; ++$j)
        {
            $row = mysql_fetch_row($result);

            if ($row[3] == 0 || $row[1] == $username || $row[2] == $username)
            {
                echo date('M jS \'y g:ia:', $row[4]);
                echo " <a href='messages.php?view=$row[1]'>$row[1]</a> ";

                if ($row[3] == 0)
                    echo "wrote: &quot;$row[5]&quot; ";
                else echo "private message: <span class='whisper'>" .
                      "&quot;$row[5]&quot;</span> ";

                if ($row[2] == $username)
                    echo "[<a href='messages.php?view=$view" ."&erase=$row[0]'>erase</a>]";

                echo "<br>";
            }
        }
        for ($j = 0 ; $j < $num2 ; ++$j)
        {
            $row2 = mysql_fetch_row($result2);

            if ($row2[3] == 0 || $row2[1] == $username || $row2[2] == $username)
            {
                echo date('M jS \'y g:ia:', $row2[4]);
                echo " <a href='messages.php?view=$row2[1]'>$row2[1]</a> ";

                if ($row2[3] == 0)
                    echo "wrote: &quot;$row2[5]&quot; ";
                else echo "private message: <span class='whisper'>" .
                      "&quot;$row2[5]&quot;</span> ";

                if ($row2[2] == $username)
                    echo "[<a href='messages.php?view=$view" ."&erase=$row2[0]'>erase</a>]";

                echo "<br>";
            }
        }  
$query=“SELECT*FROM messages,其中recip=”$view“ORDER BY time DESC”;
$query2=“从消息中选择*,其中recip='$username'按时间顺序描述”;
$result=queryMysql($query);
$result2=queryMysql($query2);
$num=mysql\u num\u行($result);
$num2=mysql\u num\u行($result2);
对于($j=0;$j<$num;++$j)
{
$row=mysql\u fetch\u row($result);
如果($row[3]==0 | |$row[1]==username | |$row[2]=$username)
{
回显日期('M jS'y g:ia:',$row[4]);
回声“;
如果($row[3]==0)
echo“写道:$row[5]”;
else回显“私人消息:”。
“$row[5]”;
如果($row[2]=$username)
回声“[]”;
回声“
”; } } 对于($j=0;$j<$num2;++$j) { $row2=mysql\u fetch\u行($result2); if($row2[3]==0 | |$row2[1]==username | |$row2[2]==username) { 回显日期('M jS'y g:ia:',$row2[4]); 回声“; 如果($row2[3]==0) echo“写道:$row2[5]”; else回显“私人消息:”。 “$row2[5]”; 如果($row2[2]=$username) 回声“[]”; 回声“
”; } }
我可以理解我的问题之所以发生,是因为我有两个不同的for循环,我可能只需要一个for循环来完成这项工作。但我试过了,我能找到一个方法来做到这一点。 你能帮忙吗?
谢谢。

您对两个查询结果使用相同的代码(未来提示:PHP支持类似函数的功能:D请尝试),并且您的查询具有相同的结构,所以为什么不为两个用户选择所有条目并对其排序呢?你试过这个吗

$query  = "SELECT * FROM messages WHERE (recip='$username' AND auth='$view') OR (recip='$view' AND auth='$username') ORDER BY time DESC";

$view=$username
?@MySQLRockstar不,这是不一样的。。。非常感谢。