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