在数据库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']; 

PS我的第一个Stackoverflow答案。

你检查过你连接到db了吗?

我的意思是$connection变量返回true?,因为我没有在php中找到任何连接到数据库的代码。

如果您可以告诉您从服务器端获得的响应,那么我可以帮助您更多。