[英]Codeigniter; Active Records Class
您好,我的問題是我只想獲取'last _...'的最后一個主題。 一個簡單的order_by不會起作用,因為它也會對論壇進行排序,這是我不想要的。 我到目前為止的代碼。 我是在CodeIgniter的內置Active Record中進行此操作的。
return $this->db->select('forums.*,')
->select('Count(topics.id) threads, Count(replies.id) replies')
->select('topics.url last_post_url, topics.name last_post_name, topics.created last_post_date')
->select('users.url user_url, users.name user_name, ranks.name user_rank')
->from('forums')
->join('topics', 'topics.f_id = forums.id', 'left')
->join('replies', 'replies.t_id = topics.id', 'left')
->join('users', 'users.id = topics.a_id', 'left')
->join('ranks', 'users.status = ranks.id','left')
->group_by('forums.id')
->get()
->result();
如果不清楚我要做什么; 我希望它能獲得論壇,在每一行中都希望它添加數量或主題(有效),回復數量(有效)以及最后發表者。
原始查詢
SELECT `forums`.*, Count(topics.id) threads, Count(replies.id) replies, `users`.`url` user_url, `users`.`name` user_name, `ranks`.`name` user_rank
FROM (`forums`)
LEFT JOIN `topics` ON `topics`.`f_id` = `forums`.`id`
LEFT JOIN `replies` ON `replies`.`t_id` = `topics`.`id`
LEFT JOIN `users` ON `users`.`id` = `topics`.`a_id`
LEFT JOIN `ranks` ON `users`.`status` = `ranks`.`id`
GROUP BY `forums`.`id`
我認為您需要使用result_array()
而不是result()
。 我可能是錯的,但這就是我會做的。
另外,我建議您執行的操作是使用PHPMyAdmin或使用的任何內容創建SQL請求,以便您可以實際看到請求獲得的結果,然后將其“轉換”為CodeIgniter語法。
您是否按照《用戶指南》中的方法嘗試過$ row = $ query-> last_row(): http ://codeigniter.com/user_guide/database/results.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.