Мне нужно написать приложение, которое проверяет базу данных с внешнего сервера каждые 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
, и мне нужно отобразить все данные для пользователя, а не только количество строк. – user1323294