私はPHPでチャットアプリケーションを作っています。私が直面している問題は、2番目のメッセージを送信したときに初めて1番目のメッセージが表示されることです。たとえば、4回目のメッセージを表示する必要がある場合は、5回目のメッセージを送信するか、ページを更新する必要があります。問題の原因を見つけるのを手伝ってください。 Simlifiedコードは以下の通りです:古いメッセージは、新しいメッセージを送信したり、チャットアプリケーションのページを更新したりするときにのみ表示されます。
<!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>
AJAXを使用する方が良いでしょうか? –
私はあなたのデータベースに新しい行を置く前に、私の解決策が助けなければならないと思います。あなたはデータを選択しています。 –