Php 线程消息传递系统

Php 线程消息传递系统,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在构建一个线程消息传递系统,我有以下表格 conversations_inbox id R_id S_id message read post_time conv_id conversation_outbox id R_id S_id message read post_time conv_id conversation_meta id sender_id reciever_id datetime conversations\u收件箱和conversations\u发件箱有一个外键c

我正在构建一个线程消息传递系统,我有以下表格

conversations_inbox
id
R_id
S_id
message
read
post_time
conv_id

conversation_outbox 
id
R_id
S_id
message
read
post_time
conv_id

conversation_meta
id
sender_id
reciever_id
datetime
conversations\u收件箱
conversations\u发件箱
有一个外键
conv\u id
,用于跟踪两个用户之间的消息线程 我在处理邮件收件箱时遇到了一个障碍,我试图按
发件人id(S\u id)
对收件箱中的邮件进行分组,而不是将用户收到的每条新邮件显示为新行。因此,框中所有发送给用户的邮件都分组在发送邮件的用户下,并显示该用户的最新邮件

我试过了

function get_user_conversations($user_id) {
       //Load Models
       $this->load->model('conversation_model');
       //Load helper
       $this->load->helper('date');
       //database query
       $q = $this->db->select('R_id,message,post_time,read,conv_id')
                     ->from('conversations_inbox')
                     ->where('R_id',$user_id)
                     ->group_by('S_id')
                     ->order_by('post_time','desc')
                     ->get();
        $conversations = $q->result();
        return $conversations;
   }
但它只为每个发送者id返回一行数据
如果有人能给我指出正确的方向,我将不胜感激。首先,我要声明,在此之前,我从未听说过codeigniter

我认为这是因为你调用了
->order\u by('post\u time','desc')
group\u by
之后,试着切换这两个,在它们未分组时对它们进行排序是我的想法