gpt4 book ai didi

PHP 消息传递系统不会显示第一条消息

转载 作者:行者123 更新时间:2023-11-29 01:16:19 26 4
gpt4 key购买 nike

我正在使用 PHP 并创建了一个非常复杂的消息传递系统。但我的问题是它不会显示第一条消息,直到它被“推”上去。如果我转到某人的个人资料并向他们发送消息,第一条消息将不会显示,但如果我发送另一条消息,第一条显示但第二条不显示......直到我发送第三条消息,然后显示第一条和第二条等等。

我已经测试过了,它似乎不是 css 或 MySQL。文本实际上正在显示,并且数据库在发送的第二秒存储每条消息。我什至发送了 1 条消息,回到家,然后检查它是否已发送,但在发送第二条消息之前不会显示。数据库还显示正在存储的消息数据,它就在那里和一切。

有没有办法将我的 php 输出中的行向前推一个?这样它就走上正轨了吗?

下面的代码从数据库中检查两个用户之间的任何消息,如果存在则将它们存储到一个数组中。

$query = "select * from messages INNER JOIN users u on u.userid = messages.createduserid 
where (createduserid='$user' && recuserid='$recuser') OR (createduserid='$recuser' && recuserid='$user')
ORDER BY createddate DESC limit 6 " or die("Error in the consult.." . mysqli_error($connection));
$result = $connection->query($query);
$row = mysqli_fetch_array($result);

这会获取上面创建的数组并将其输出给用户查看

while ($profilepreviewlist = $result->fetch_assoc()) {


echo '<div class="previewlistitem">';
echo'<p class="messagetext">';
echo $profilepreviewlist['username'],': ';

echo $profilepreviewlist['body'];
echo'<div class="messagedate">';
echo ($profilepreviewlist["createddate"]);
echo'</div>';
echo'</p>';
echo '</div>';
}
?>

按下此按钮时,将发送消息并运行下面的代码

<input class="input" name="messageplace" placeholder="Type a message here" id="messageplace">

此代码将消息中的数据存储到数据库中,然后刷新消息页面

$userid = $_SESSION['userid'];
$recuserid = $_SESSION['tempuserid'];
$body=$_POST['messageplace'];
$datee = new DateTime("NOW");
$createddate = $datee->format('Y-m-d H:i:s');

send_message($userid,$recuserid,$body,$createddate);
include('message.php');

如果您有兴趣测试该功能,请告诉我

最佳答案

当您调用 $row = mysqli_fetch_array($result) 时,您正在访问 SQL 查询返回的第一条记录并将 $result 的游标前进到下一条记录。因此,当您调用时:

while ($profilepreviewlist = $result->fetch_assoc()) {
//do whatever...
}

您将无法访问集合中的第一条记录,因为您已经处理过它 - 它存储在 $row 中。

要解决此问题,请删除 $row = mysqli_fetch_array($result)。通过删除它,您将不再处理该记录,并且可以在 while 循环中访问它。

关于PHP 消息传递系统不会显示第一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31974867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com