【问题标题】:Get data from a mysql database and save it again with ajax从 mysql 数据库中获取数据并使用 ajax 再次保存
【发布时间】:2021-01-02 18:52:22
【问题描述】:

我正在尝试将从API 获取的数据保存在数据库中。事实上,我从 API 获得了我网站上销售的产品的销售数量,我想通过ajax 将它们保存在我的数据库中。问题是我在一般情况下仍然有很多 Javascript 问题。所以这就是我所做的。

我创建了第一个文件来使用 ajax 保存数据(我认为这肯定是问题所在,哈哈)。

//script.js

function saving_data()
    {
        $.ajax({
            url:"fetch.php",
            method:"POST",
            data : data,
            dataType : 'json',
            success : function (stats) {
                jQuery.each(stats, function(i, val) {
                    var action = 'action';
                    var id = val["id"];
                    var sales = val["quantite"];
                    $.ajax({
                    url:"save.php",
                    method:"POST",
                    data:{action:action, id:id, sales:sales}
                    });
                });
            },
            error : function () {
            alert("error");
            }
        });
    };
    
    saving_data();
        
    setInterval(function(){
        saving_data();
    }, 5000);

然后我创建了第二个文件,允许我从我的数据库中获取产品。

//fetch.php

$pdo = Connexion::getPDO(); // a PDO instance

$sql = $pdo->query("SELECT * FROM products ORDER BY date DESC");
$beats = $sql->fetchAll(PDO::FETCH_ASSOC);
$stats = [];

foreach ($products as $key => $product) {
    $salesstats = $api->sales(api-request);
    $stats[$key] = [
        "id" => $product["id"],
        "quantity" => $salesstats["quantity"], //get from api
        "amount" => $salesstats["amount"] // get from api
    ];
}

echo json_encode($stats);

最后我创建了一个 javascript 文件,它应该允许我将数据保存在我的数据库中。

//save.php

$pdo = Connexion::getPDO(); // a PDO instance

if(isset($_POST['action'])){

    $bId = $_POST["id"];
    $bSales = $_POST["sales"];
    $update_query = "UPDATE products SET sales = '$bSales' WHERE id = '$bId'";
    $pdo->query($update_query);

}

当然,它不起作用。数据库未更新。但我不知道出了什么问题。有人可以帮帮我吗?

谢谢。

【问题讨论】:

  • 您粘贴了很多代码,包括服务器端和客户端,没有任何实际错误的指示以及可能出现的位置。你真的应该缩小问题的范围。
  • 问题很简单,数据库没有更新。不显示错误。我在文章开头解释了它。我粘贴了代码,因为有时人们会来详细询问代码。
  • 您甚至没有连接到 save.php 中的数据库,并且绝对没有错误处理或显示代码中的任何错误。所以,你需要先做一些调试。
  • 我连接了。我只是没有放入,因为我在之前的代码中放入过一次。我只想知道,您是否在我的代码中看到错误?
  • 我们怎么知道你故意省略了代码的某些部分而不是真正的错误?

标签: php mysql ajax


【解决方案1】:

问题在于 Ajax 脚本。我指定了一个未定义的数据参数。我认为有必要放它以便 Ajax 用 URL 参数文件将其取回,但不,没有必要放任何东西。

为了检查错误,我在浏览器的调试器中调试了代码,使用 ajax 请求的断点方法(该方法解释为 here,但用法语)。第一个确实停止了代码,但第二个没有。 Firefox 调试器清楚地向我显示了未定义的数据参数(Chrome 没有这样做)。

所以我删除了它,一切正常。

感谢 @CBroe 让我继续发表评论。

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 1970-01-01
    • 2014-05-03
    • 2015-05-22
    • 2012-12-14
    • 2018-07-07
    • 1970-01-01
    • 2019-11-26
    • 2023-03-27
    相关资源
    最近更新 更多