新しいデータがあるかどうかを確認するために、10 秒ごとに外部サーバーからデータベースをチェックするアプリケーションを作成する必要があります。現在、2つのJSON(古いJSONとサーバーからフェッチされた新しいJSON)を比較してデータがサーバーに変更されたかどうか、およびユーザーにアラートがあるかどうかを確認するJavaScriptがあります。しかし、それはこのアプリケーションで必要なものではありません。ユーザーは、データが変更されたときではなく、データが新しいときにのみアラートを受け取る必要があります。
MYSQL を照会する PHP コードを使用してこれを行うことができると考えていました。クエリ num_results が 0 の場合、ユーザーに通知されたときに num_results が 0 を超えるまでループします。このアプリケーションでは、ユーザーが新しいデータを取得する限り、0.1 秒または 10 秒でユーザーが新しいデータを利用できるようになるかどうかは問題ではありません。これは、MYSQL チェックを実行しようとした方法ですが、機能していません。
<?php
include 'config.php';
if(isset($_GET['ID'])) {
$maxLoop = 20;
while($maxLoop--) {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$sth = $dbh->prepare('select * from testit where id = :id');
$sth->bindParam(':id',$_GET['ID'],PDO::PARAM_INT);
$sth->execute();
if($sth->rowCount()>0) {
$results = $sth->fetchAll(PDO::FETCH_OBJ);
echo '{"key":'. json_encode($results) .'}';
exit; // Found new data, end loop and script
}
} catch(PDOException $e) {
break;
}
sleep(3);
} // end while
} // end if
では、このコードを変更して機能させるにはどうすればよいでしょうか。それとも、これを行う JavaScript を作成するだけでよいのでしょうか。もしそうなら、データが変更されたかどうかを確認するだけでなく、データが新しいかどうかを確認するにはどうすればよいですか?