【问题标题】:how to insert json to mysql database with codeigniter如何使用codeigniter将json插入mysql数据库
【发布时间】:2017-02-03 00:28:22
【问题描述】:

我有这样的值的 html 表:

我已经使用 jquery 插件 tabletoJSON 将表上的值转换为 JSON 对象,如下所示:

   [{

    harga_jual : "47025",
    id_buku : "1",
    judul_buku : "perempuan dam hak warisnya",
    jumlah : "1",
    subtotal : "47025"

   },

   {

   harga_jual : "49500",
   id_buku : "2",
   judul_buku : "Keajaiban Operasi Plastik Korea Selatan",
   jumlah : "2",
   subtotal : "99000"

   }]

我希望当我点击结帐按钮时,它会使用 codeigniter 将 json 数据插入 mysql,我如何在我的模型和控制器上编写代码?

这里是我的表结构:

id_buku : int
jumlah : double
subtotal :double

非常感谢。

【问题讨论】:

  • 显示你的mysql表结构
  • 我已经编辑了我的问题,谢谢

标签: mysql json codeigniter


【解决方案1】:

将带有数据值的对象(作为 JSON)发送到控制器。例如(使用 JQuery):

$.post('your_action_url', {sendData: JSON.stringify(yourData)}, function(res) {
    console.log(res);
}, "json");

然后在您的控制器中,您可以使用此 CI 方法获取数据:

$data = json_decode($this->input->post('sendData'));

如果 $data 是一个对象数组并且你想过滤 $data,你可以循环 $data 然后在你的模型中调用 save 方法

    $this->db->trans_begin();
    foreach($data as $row) {
        $filter_data = array(
            "id_buku" => $row->id_buku,
            "jumlah" => $row->jumlah,
            "subtotal" => $row->subtotal
        );
       //Call the save method
       $this->your_model_alias->save_as_new($filter_data);
    }

    if ($this->db->trans_status() === FALSE) {
        $this->db->trans_rollback();
        echo json_encode("Failed to Save Data");
    } else {
        $this->db->trans_commit();
        echo json_encode("Success!");
    }

考虑使用事务一次存储大量数据。这对于避免不受欢迎的事情是必要的。

你的模型的保存方法应该是这样的:

public function save_as_new($data) {
    $this->db->insert('your_table_name', $data);
}

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2014-04-26
    • 2015-05-29
    • 2014-09-24
    • 2013-03-25
    • 2020-11-19
    相关资源
    最近更新 更多