获取JSON键/值,并使用值(val1、val2、..)更新列(key1、key2、..的SQL表


Getting JSON keys/values, and updating SQL table at columns (key1, key2, ...) with values (val1, val2, ...)

我正在向我的服务器发送一个包含以下数据的JSON数组:

[{"name":"Dinner","value":"3"},
{"name":"Happy_Hour","value":"3"},
{"name":"client_id","value":"55"}]

使用AJAX:

$.ajax({
    async: false,
    url: 'http://****',
    data: MyJsonArray,
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'submitCallback',
    success: function(){
        alert("success");
    },
    error: function(xhr, status, errorThrown){
        alert("submit interests error" + status);
    },
    complete: function(){
    }
}); //ajax

然后,我想使用PHP更新列名("Dinner"answers"Happy_Hour")的表,其中包含每个列名的值。通常,我会使用$_GET['Happy_Hour']UPDATE table_name SET Happy_Hour=?, etc_etc=? WHERE id=?,但现在我应该以某种方式迭代一个数组,以获得键/值。如何从必须使用$_GET['hardcoded_name']过渡到获得这些键/值的数组?

编辑
我引用的JSON对象实际上是一个数组,所以我更改了它(顶部)。我是通过调用MyHTMLForm.serializeArray(); 得到的

如果你不想使用硬编码索引,你可以把它放在另一个父索引中:

$.ajax({
   data: {data: MyJsonObject},
   // ... others
});

然后在PHP脚本上,调用父持有者:

<?php
if(isset($_GET['data'])) {
    $data = $_GET['data'];
    foreach($data as $val) {
        $val['name'] // the particular key Dinner, ,Happy_Hour
        $val['value'] // the corresponding value 3, 3, 55
        // rest of insert code
    }
}
?>