我需要有关上述标题的建议。我有以下代码:
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);
这不是我期待的工作。
我不知道代码中的问题在哪里?
答案 0 :(得分:6)
您的循环甚至不会运行一次,因为$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'];
答案 1 :(得分:3)
对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'];
P.S。我的第一个Stackoverflow答案。
答案 2 :(得分:2)
我认为你的整个方法都行不通。我建议,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);
答案 3 :(得分:1)
你检查过你是否已连接到db?
我的意思是$connection
变量返回true?,因为我没有在php中找到任何连接到数据库的代码。
如果您可以告诉您从服务器端获得的响应,那么我可以帮助您了解更多信息。