Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX/PHP/MySQL-检测数据库更改并提醒用户?_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript AJAX/PHP/MySQL-检测数据库更改并提醒用户?

Javascript AJAX/PHP/MySQL-检测数据库更改并提醒用户?,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,Jquery: $.ajax({ type: "GET", dataType: 'html', url: "order", timeout: 30000, cache: true, success: function(data, status, xhr) { $('#changes').append(data); alert("x amount of changes have been

Jquery:

    $.ajax({
        type: "GET",
        dataType: 'html',
        url: "order",
        timeout: 30000,
        cache: true,
        success: function(data, status, xhr) {
    $('#changes').append(data);
alert("x amount of changes have been updated");
        },
        error: function(xhr, ajaxOptions, thrownError) {
          alert(xhr.status);
          alert(thrownError);
        }
      });
$stmt = $db->prepare("SELECT * FROM `orders` WHERE `date` > NOW()");
//Other MySQL stuff
PHP:

    $.ajax({
        type: "GET",
        dataType: 'html',
        url: "order",
        timeout: 30000,
        cache: true,
        success: function(data, status, xhr) {
    $('#changes').append(data);
alert("x amount of changes have been updated");
        },
        error: function(xhr, ajaxOptions, thrownError) {
          alert(xhr.status);
          alert(thrownError);
        }
      });
$stmt = $db->prepare("SELECT * FROM `orders` WHERE `date` > NOW()");
//Other MySQL stuff
基本上我不知道该怎么做,但我想在每次有新订单时提醒用户,但我该如何在PHP方面提醒用户发生了变化呢

我的大脑今天不工作,我需要检测有多少订单,然后将新订单(而不是旧订单)添加到表中

我可以从order.php页面解析json,但不显示它,只显示HTML吗


我真的希望有人能帮我

是的,您可以从PHP发送和接收JSON。下面是一个生产系统中的代码,但我从中删除了很多代码,只是为了向您展示一些重要的东西。您将需要添加错误检查逻辑等(代码可能有语法错误(拼写错误),但正如我所说的,它是功能性的):


函数checkForNew(){
var POSTData='CMD=getNewInvoices&';/*您的PHP脚本可以处理不同的请求*/
POSTData=POSTData+'myData='+伪保存;
$.ajax({
键入:“POST”,
url:“./checkForNewInvoices.php”,
数据:POSTData,
async:false,
错误:函数(数据){
retData=数据;
//做一些错误的事情
},
成功:功能(数据){
retData=数据;
retJ=JSON.parse(retData);
//检查这里是否有有效的JSON
}
});
setTimeout(函数(){checkForNew();},5000);
}
$(文档).ready(函数(){
checkForNew();
});
下面是我要做的(逻辑/思考{警告可能有缺陷:-)}):

  • 当我保存订单(更新/插入)时,我会用整数或“标志(真/假)”更新文本文件(或db字段)
  • 加载时,我的网站将以计数和标志状态开始,检查没有处理标志的订单,并保留加载状态的本地“标记”
  • 然后我将检查标志/int是否已更改(没有状态标志的订单)。如果订单已更改或没有“显示/处理”状态,则我知道有新的订单/发票,然后我将发送服务器查询(ajax)以检索订单或计数等
  • 忧虑/情况:

  • 如果订单来自世界各地,网站被很多人访问(多对多)
  • 订单来自很多人,但只有一个人在加载监控站点(多对一)
  • 订单站点是一个地方,监控站点是一个(一对一-简单)
  • 相信这会有帮助


    复活节快乐

    如果你想在每次数据库发生变化时通知用户,你需要谷歌:
    websockets
    ,不幸的是,它不是
    php
    最强大的资产,使用
    NodeJs可以轻松得多,它可以用php完成,我想我怎么也看不到任何轮询,你只调用了一次@Taki php能够很好地运行websocket服务器,node只有一个简单的api。但这不是唯一的选项,可以执行服务器发送的事件。我应该在order.php端编写哪些代码来存储所做的更改,可能是JSON格式,以便可读。您可以在任何文件上运行cron作业,该文件自创建以来已更新,并根据完成的查询记录,或者在以后的任何日子,似乎是一种方式。这可能有些过分,但这是一种可能的方式。