Php 按时间顺序显示来自两个用户的消息
我的问题是我想在两个用户之间显示消息并按时间排序。 我试图显示来自每个用户的消息,但它首先为用户George和用户Niklakis显示,如下图所示。。。 我想要的是按时间顺序显示这两条消息。 这是我代码的一部分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
$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: "$row[5]" ";
else echo "private message: <span class='whisper'>" .
""$row[5]"</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: "$row2[5]" ";
else echo "private message: <span class='whisper'>" .
""$row2[5]"</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不,这是不一样的。。。非常感谢。