我有两个表,我想将它们转换为 json,如下所示:
$first_query = $this->db->query("SELECT * FROM `parameters` WHERE patient_id=7 ORDER BY created_on DESC LIMIT 10");
$second_query = $this->db->query("SELECT * FROM `pat_details` WHERE email='".$email."' AND phone_num='".$phone_num."'");
$first_query 返回应存储在数组中的 10 组记录,$second_query 返回对象。我需要将两个查询 mysql 合并在一个对象 json 中并检索结果的详细信息。
输出应该是:
[
{
"firstname":"xyz",
"id":"123456",
"mail":"[email protected]",
"parameters":[
{
"diabetic":"no",
"hypertension":"yes",
},
{
"diabetic":"no",
"hypertension":"yes",
},
{
"diabetic":"yes",
"hypertension":"no",
}
]
}
]
我无法将这两个查询聚合为一个并将结果编码为 json
您可以使用连接查询或子查询。由于数据彼此不相关,因此这不会带来巨大的性能优势。
如果您只想组合数据,将数据返回或转换为数组,请对两个数组使用 array_merge(),然后使用 json_encode()。
并确保您的查询免受 SQL 注入的影响。我建议使用 CodeIgniter 查询生成器来使数据库交互更简单、更安全。
我找到了解决方案
$first_query = $this->db->query("SELECT * FROM `parameters` WHERE patient_id=7 ORDER BY created_on DESC LIMIT 10");
$json= $firstquery->result();
$second_query = $this->db->query("SELECT * FROM `pat_details` WHERE email='".$email."' AND phone_num='".$phone_num."'");
$json2 = array();
foreach($secondquery->result_array() as $row){
$json2[] = array(
'name' => $row['name'],
'address' => $row['address'],
'mail' => $row['mail']
);
}
$json['parameters'] = $json2;
echo json_encode($json);