使用 php mysqli 从两个连接的表中获取数据
Posted
技术标签:
【中文标题】使用 php mysqli 从两个连接的表中获取数据【英文标题】:Get data from two connected table with php mysqli 【发布时间】:2014-12-08 17:20:13 【问题描述】:我有两个连接的表 - days
和 user_days
:
天数:
USER_DAYS:
我需要如何检查 user_days 中是否有今天 (unix_date) 记录,如果有,那么我需要在此之后获取 day_id 以从表 DAYS 中以 day_id 为 ID 获取数据...
我写:
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 有问题,但我可以按小时解决...
【问题讨论】:
dev.mysql.com/doc/refman/5.0/en/join.html 是你的朋友... 【参考方案1】:在 getday() 中,我认为您应该将 $res["task"] = $task;
替换为 $res["day"]=$day
。
【讨论】:
好的,但这不是问题:我通过更改 QUERY: WHERE d.dayDate= 来解决这个问题? AND ud.dayDate = d.dayDate AND ud.user_id = ?");以上是关于使用 php mysqli 从两个连接的表中获取数据的主要内容,如果未能解决你的问题,请参考以下文章