在数据库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中找到任何连接到数据库的代码。
如果您可以告诉您从服务器端获得的响应,那么我可以帮助您更多。