我需要編寫一個應用程序,每10秒鐘檢查外部服務器的數據庫以查看是否有新數據。目前我有一個JavaScript,通過比較兩個JSON(舊的JSON和從服務器獲取的新的)以及它是否提醒用戶來檢查數據是否改變了服務器。但這不是我在這個應用程序中需要的。只有在數據是新的時候才應該提醒用戶,而不是在數據改變的時候。如何檢查mysql上是否有新數據
我在想,也許我可以用PHP代碼來查詢MYSQL,如果查詢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,將做到這一點?如果是這樣,我該如何檢查數據是否是新的,而不是僅僅檢查它是否已經改變?
有一列叫做表中的條件。所以應用程序應該檢查是否有條件= false的行。如果有它應該打印它們。當用戶看到這些行時,他們按下一個按鈕,將值從false更改爲true。因此,條件= false的每一行都被視爲「新數據」。 – user1323294 2012-04-18 05:10:11
我需要顯示用戶的所有數據,而不僅僅是行數。 – user1323294 2012-04-18 06:34:57