我正在尝试从视频表中获取用户 ID 列表。该表包含用户上传的媒体文件。这是我的代码
$this->db->select("videos.user_id as userId");
$this->db->limit('10', $document['offset']);
$this->db->group_by('userId');
$this->db->order_by('id','desc');
$recentUploads = $this->db->get('videos')->result_array();
if (!empty($recentUploads))
{
foreach ($recentUploads as $record)
{
$totalPostMedia = $obj->totalPostMedia($record);
$record['totalPostMedia'] = $totalPostMedia;
$resData = $this->db->select("username, profileImage")->from('users')->where('id', $record['userId'])->get()->row_array();
$record['uploadBy'] = $resData['username'];
$record['profileImage'] = "http:...com/profileImage/".$resData['profileImage'];
$Mydata[] = $record;
}
}
获取的结果缺少表中的一些 userId。我也尝试过 $this->db->distinct()
。仍然得到相同的结果。我获得没有重复结果的唯一方法是删除 $this->db->order_by('id','desc');
或将其设为 asc
而不是 desc
。但我想从表中获取最新的记录。我该怎么做呢?难道我做错了什么?任何帮助将非常感激。
最佳答案
试试这个
$this->db->select("videos.user_id as userId");
$this->db->from("videos");
$this->db->group_by('userId');
$this->db->order_by('id','desc');
$this->db->limit('10', $document['offset']);
$recentUploads = $this->db->get()->result_array();
if (count($recentUploads)>0)
{
foreach ($recentUploads as $record)
{
$totalPostMedia = $obj->totalPostMedia($record);
$record['totalPostMedia'] = $totalPostMedia;
$resData = $this->db->select("username, profileImage")->from('users')->where('id', $record['userId'])->get()->row_array();
$record['uploadBy'] = $resData['username'];
$record['profileImage'] = "http:...com/profileImage/".$resData['profileImage'];
$Mydata[] = $record;
}
}
关于php - Codeigniter group_by 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237317/