Уведомление о добавлении новой записи в базу данных php-jquery

Мне нужен совет по названию выше. У меня есть следующий код:

PHP:

$sql = "SELECT * FROM i_case"; $qry = pg_query($connection, $sql); $res = pg_num_rows($qry); $sql_1 = "SELECT * FROM i_case"; $qry_1 = pg_query($connection, $sql_1); $res_1 = pg_num_rows($qry_1); do { echo "new record on i_case"; } while($res != $res_1 and !(usleep(10000))); 

JQUERY:

 setInterval(function(){ $.ajax({ type : "POST", url : "file.php", success : function(response){ alert(response); } }); },1000); 

Это не работа, которую я ожидаю.

Я не знаю, где это вопрос из кода?

Ваша петля даже не будет запускаться один раз, потому что $res одинаково с $res_1 почти во всех случаях. Если цикл работает, это ужасный бесконечный цикл.

То, что вы должны сделать, это как показано ниже.

Javascript:

 var old_count = 0; setInterval(function(){ $.ajax({ type : "POST", url : "file.php", success : function(data){ if (data > old_count) { alert('new record on i_case'); old_count = data; } } }); },1000); 

И код PHP:

 $sql = "SELECT count(*) as count FROM i_case"; $qry = pg_query($connection, $sql); $row = pg_fetch_assoc($qry); echo $row['count']; 

Я думаю, что весь ваш подход не сработает. Я предлагаю PHP, чтобы генерировать счетчик и JS, чтобы проверить, не изменилось ли оно.

 $sql = "SELECT * FROM i_case"; $qry = pg_query($connection, $sql); $res = pg_num_rows($qry); echo $res; 

и в JS вы можете сделать следующее:

 var count_cases = -1; setInterval(function(){ $.ajax({ type : "POST", url : "file.php", success : function(response){ if (count_cases != -1 && count_cases != response) alert('new record on i_case'); count_cases = response; } }); },1000); 

Небольшая настройка для ответа на xdazz. Чтобы избежать предупреждения в первый раз при загрузке страницы.

Код JS:

 var old_count = 0; var i = 0; setInterval(function(){ $.ajax({ type : "POST", url : "notify.php", success : function(data){ if (data > old_count) { if (i == 0){old_count = data;} else{ alert('New Enquiry!'); old_count = data;} } i=1; } }); },1000); 

Код PHP:

 include("config.php"); $sql = "SELECT count(*) as count FROM Enquiry"; $qry = mysqli_query($db, $sql); $row = mysqli_fetch_assoc($qry); echo $row['count']; в include("config.php"); $sql = "SELECT count(*) as count FROM Enquiry"; $qry = mysqli_query($db, $sql); $row = mysqli_fetch_assoc($qry); echo $row['count']; 

PS Мой первый ответ Stackoverflow.

Вы проверили, что вы подключены к db?

Я имею в виду, что переменная $connection возвращает true ?, потому что я не нашел кода в php, который подключается к базе данных.

Если бы вы могли сказать, какой ответ вы получаете от сервера, то я могу помочь вам немного больше.