これを機能させるために、サーバー側でいくつかのことが欠けています。
まず、@ RiggsFillyが指摘したように、ステートメントでWHERE句を使用する必要があります。条件は、新しいトランザクションを探すことです。 最後に送信されたよりも。
そのためには、最後に送信されたメッセージのタイムスタンプを追跡する必要があります。
サーバーは、条件付きのクエリが結果を返した場合にのみメッセージを送信する必要があります。
最後に、新しいトランザクションをチェックし、見つかった場合はメッセージを送信するルーチン全体をループに保持する必要があります。
<?php
include 'conn.php'; // database connection
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
$query = "SELECT TimeStamp, CardNo FROM transactions WHERE TimeStamp > ?";
$stmt = $conn->prepare($query);
$ts = time();
while(true)
{
if ($result = $stmt->execute([$ts])) {
$row = $result->fetch_assoc();
echo "data: " . $row['CardNo'] . "\n\n";
$ts = $row['TimeStamp'];
flush();
}
sleep(2);
}