gpt4 book ai didi

php - 仅当我在聊天应用程序中发送新消息或刷新页面时才会显示旧消息

转载 作者:行者123 更新时间:2023-11-28 23:23:37 25 4
gpt4 key购买 nike

我正在用 Php 制作一个聊天应用程序。我面临的问题是只有当我发送第二条消息时才会出现第一条消息。例如,如果我必须看到第 4 条发送的消息,那么我必须发送第 5 条消息或刷新页面。请帮忙找出问题所在。简化代码如下:

<!DOCTYPE html>
<html>
<head>
<title> Chatting project</title>
<link rel="stylesheet" href="css/style.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>
<script src="js/script.js"></script>
</head>
<body>
<div id="container">
<header>
<h1><span>Chatting project</span></h1>
</header>
<div id="shouts">
<ul>

<!-- Insert MySQL datbase into HTML -->
<?php
$connection = mysqli_connect("localhost", "root", "", "tru");
$query = "SELECT * FROM shouts ORDER BY id Desc LIMIT 8";
$shouts = mysqli_query($connection, $query);
?>

<!-- Insert MySQL datbase into HTML -->
<?php while ($row = mysqli_fetch_assoc($shouts)) : ?>
<li><?php echo $row['name']; ?>: <?php echo $row['shout']; ?> [<?php echo $row['date']; ?>]</li>
<?php endwhile; ?>

</ul>
</div>
<footer>
<form action="index.php" method="post">

<label>Shout Text: </label>
<input type="text" name="shout" placeholder="Enter your message here">
<input type="submit" id="submit" value="SHOUT!" >
</form>

<?php
$link = mysqli_connect("localhost", "root", "", "tru");
$sql = "INSERT INTO shouts (name,shout) VALUES `('$_POST[name]','$_POST[shout]')";`
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>


</footer>
</div>

最佳答案

问题出在您的代码中,您在 SQL 的 SELECTING 之后 INSERTING。那些行:

<?php 
$link = mysqli_connect("localhost", "root", "", "tru");
$sql = "INSERT INTO shouts (name,shout) VALUES `('$_POST[name]','$_POST[shout]')";`
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// close connection
mysqli_close($link);
?>

应该在 SELECT 行之前:

<?php
$connection = mysqli_connect("localhost", "root", "", "tru");
$query = "SELECT * FROM shouts ORDER BY id Desc LIMIT 8";
$shouts = mysqli_query($connection, $query);
?>

所以它会像:

<?php
$link = mysqli_connect("localhost", "root", "", "tru");
$sql = "INSERT INTO shouts (name,shout) VALUES `('$_POST[name]','$_POST[shout]')";`
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
$query = "SELECT * FROM shouts ORDER BY id Desc LIMIT 8";
$shouts = mysqli_query($link, $query);

// close connection
mysqli_close($link);
?>

在您的情况下,您是在将新数据放入数据库之前获取数据,因此您立即从数据库中SELECT 时还没有新行。

关于php - 仅当我在聊天应用程序中发送新消息或刷新页面时才会显示旧消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40395619/

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