以下公共(public)函数显示用户个人资料的访问者。我想做的是按最近的访问者对结果进行排序。我认为最好的方法是在左 JOIN 之前添加 ORDER BY last_visit。但这破坏了脚本,我收到“无结果”消息。顺便说一句,last_visits 有一个时间戳数据类型。
public function getVisitors($count = 10, $page = 0){
$result = $this->_db->query('
SELECT
`visited_users`.*,
`users`.*,
NOW() as now_t
FROM
`visited_users`
ORDER BY last_visit
LEFT JOIN `users` ON `users`.`id` = `visited_users`.`user_id`
WHERE
`visited_users`.`visited_id` = ?
LIMIT '.$count*$page.','.$count, array($this->_data->id));
return $result->results();
}
最佳答案
正确的 SQL 语法要求 ORDER BY 位于 WHERE 子句之后。试试这个。
public function getVisitors($count = 10, $page = 0){
$result = $this->_db->query('
SELECT
`visited_users`.*,
`users`.*,
NOW() as now_t
FROM
`visited_users`
LEFT JOIN `users` ON `users`.`id` = `visited_users`.`user_id`
WHERE
`visited_users`.`visited_id` = ?
ORDER BY last_visit
LIMIT '.$count*$page.','.$count, array($this->_data->id));
return $result->results();
}
关于php - 如何按last_visit排序并显示用户的最近访问者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715400/