CodeIgniter查询查看朋友的所有帖子


CodeIgniter query to see all post made by friend

我正在做一个基于CodeIgniter和MySQL的项目。我需要关于构建CodeIgniter查询的建议。

我想要实现的目标:

我有三张表,profileactivityfriends。这些表格的结构是:

配置文件

user_id | name

活动

activity_id | message | user_id | sharewith | createdtime

朋友

 id | user1 | user2 | arefriends

现在,我想根据用户与谁共享,将所有用户的帖子显示在每个人/朋友的墙上。我只有两种选择可以与共享,要么与所有人共享,要么仅与朋友共享

对于与所有人共享,我将1存储在活动sharewith列中,用于仅与朋友共享的user_id2

到目前为止,我已经建立了这个查询:

function load_activity()
{
    $user_id=$this->session->userdata('user_id'); 
    $this->db->select('*');
    $this->db->from('activity');
    $this->db->order_by("activity_id", "desc");
    $this->db->limit(15);
    $this->db->join('profile', 'profile.user_id = activity.user_id');
    $query = $this->db->get();
    foreach ($query->result() as $row){
        $data[]=$row;
    }
    echo json_encode($data);              
}

我如何修改此查询以显示与所有人共享的所有活动仅与朋友共享的

提前谢谢。

您似乎只需要一个WHERE子句。如果用户不是朋友,他们应该只能看到"与所有人共享"活动。

function load_activity() {
    $user_id=$this->session->userdata('user_id'); 
    $this->db->select('*');
    $this->db->from('activity');
    $this->db->order_by("activity_id", "desc");
    $this->db->limit(15);
    $this->db->join('profile', 'profile.user_id = activity.user_id');
    if(!IS_FRIEND) {
        $this->db->where('sharewith', 1);
    }
    $query = $this->db->get();
    foreach ($query->result() as $row){
        $data[]=$row;
    }
    echo json_encode($data);              
}