以下公共函数显示用户配置文件的访问者。我想做的是按最近的访问者排序结果。我认为最好的方法是在左JOIN之前添加ORDER BY last_visit。但这打破了脚本,我得到了"没有结果"的消息。last_visits的时间戳数据类型为btw.
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();
}