从json编码的字符串php构建SQL语句

时间:2012-11-04 20:39:35

标签: php jqgrid json

欢迎Stackoverflow国家!我正在尝试使用php将json编码的字符串解码为SQL语句。

让我说我有一个json编码的字符串=>

$j = '{"groupOp":"AND","rules":[{"field":"id","op":"cn","data":"A"},{"field":"i_name","op":"cn","data":"B"}]}';

我想构建 SQL WHERE 子句(在jqGrid中搜索filterToolbar所需),类似于this => “WHERE id LIKE %A% AND i_name LIKE %B%”等等。

我已经完成了这个=>

$d = json_decode($j);

$filterArray = get_object_vars($d); // makes array


foreach($filterArray as $m_arr_name => $m_arr_key){
    // here I can't made up my mind how to continue build SQL statement which I've mentioned above 
}

任何想法如何做到这一点,初步感谢:)

2 个答案:

答案 0 :(得分:1)

第一个问题是您需要提取groupOp运算符。

然后,你有一个对象,里面有一个对象数组,所以你可能想查看filterArray的结果,因为它没有你想要的值。

然后,当你循环时,你会希望用索引来做,所以你可以按顺序拉出值。

您可能需要查看此问题,了解如何从数组中获取数据:

json decode in php

这是另一个可能对您有所帮助的问题:

How to decode a JSON String with several objects in PHP?

答案 1 :(得分:0)

服务器端php代码here

的实现有一个答案

更正:我必须在'filters'参数中使用双引号才能使其正常工作:

$filters = str_replace('\"','"' ,$_POST['filters']);
相关问题