[英]Get data from two connected table with php mysqli
我有两个连接表- days
与user_days
:
天:
USER_DAYS:
我该如何检查user_days中是否有带user_id的今天(unix_date)记录,如果是,那么我需要在此之后获取day_id以从具有ID为day_id的表DAYS中获取数据...
我写:
public function getDay($user_id) {
$stmt = $this->conn->prepare("SELECT d.id, d.day, d.status, d.created_at, d.dayDate from days d, user_days ud WHERE d.id = ? AND ud.dayDate = d.dayDate AND ud.user_id = ?");
$t=time();
$dayDate = date("Y-m-d",$t);
$stmt->bind_param("si", $dayDate, $user_id);
if ($stmt->execute()) {
$res = array();
$stmt->bind_result($id, $day, $status, $created_at, $dayDate);
// TODO
// $task = $stmt->get_result()->fetch_assoc();
$stmt->fetch();
$res["id"] = $id;
$res["task"] = $task;
$res["status"] = $status;
$res["created_at"] = $created_at;
$res["dayDate"] = $dayDate;
$stmt->close();
return $res;
} else {
return NULL;
}
}
另一方面,作为index.php我没有那么重要的代码:
$app->get('/days', 'authenticate', function() {
global $user_id;
$response = array();
$db = new DbHandler();
// fetch task
$result = $db->getDay($user_id);
if ($result != NULL) {
$response["error"] = false;
$response["id"] = $result["id"];
$response["day"] = $result["day"];
$response["status"] = $result["status"];
$response["createdAt"] = $result["created_at"];
$response["dayDate"] = $result["dayDate"];
echoRespnse(200, $response);
} else {
$response["error"] = true;
$response["message"] = "The requested resource doesn't exists";
echoRespnse(404, $response);
}
});
我刚得到的输出是不正确的:
Object {error: false, id: 0, day: null, status: 0, createdAt: null}
我的QUERY有什么问题,我认为QUERY是问题,但我可以在数小时内解决...
在getday()中,我认为您应该替换$res["task"] = $task;
其中$res["day"]=$day
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.