我有这个功能的查询,我想调用更多数据,而无需对响应使用JOIN
这是我的查询
$id = $request->getAttribute('id');
$sql = "SELECT *
FROM users
WHERE section = :id";
try {
$db = new db();
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(":id", $id);
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
if(empty($users)) {
$response->getBody()->write
('
{
"error":
{
"message":"Empty"
}
}');
} else {
$response->getBody()->write(json_encode($users));
}
} catch(PDOException $e) {}
};
我尝试了
$id = $request->getAttribute('id');
$tsql = "SELECT *
FROM teachers
WHERE section = :id";
$sql = "SELECT *
FROM users
WHERE section = :id";
try {
$db = new db();
$db = $db->connect();
$stmt = $db->prepare($sql);
$tstmt = $db->prepare($tsql);
$stmt->bindParam(":id", $id);
$tstmt->bindParam(":id", $id);
$stmt->execute();
$tstmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
$teachers = $tstmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
if(empty($users) AND empty($teachers)) {
$response->getBody()->write
('
{
"error":
{
"message":"Empty"
}
}');
} else {
$response->getBody()->write(json_encode($users));
$response->getBody()->write(json_encode($teachers));
}
} catch(PDOException $e) {}
};
我得到的结果
我得到了我需要的数据,但它就像未大规模的JSON响应一样,通常,我对"绿色"获得了干净的回应
{"userid":"3","firstname":"joe","lastname":"d"}[{"id":"1","name":"jlo"}]
我期望的结果
- 干净的JSON格式响应
- 在数组中的老师带有标识符的"老师"和其他带有标识符"用户"的数组,其中所有内部的数组数组
您需要组合数据并输出一次...
您可以尝试:
$response->getBody()->write(json_encode(['users' => $users, 'teachers' => $teachers]));
这将使您访问数据,例如:result.users / result.teachers
,并且会输出:
{ "users" : [user1...], "teachers" : [teacher1...] }