我正在做一个基于CodeIgniter和MySQL的项目。我需要关于构建CodeIgniter查询的建议。
我想要实现的目标:
我有三张表,profile
、activity
和friends
。这些表格的结构是:
配置文件
user_id | name
活动
activity_id | message | user_id | sharewith | createdtime
朋友
id | user1 | user2 | arefriends
现在,我想根据用户与谁共享,将所有用户的帖子显示在每个人/朋友的墙上。我只有两种选择可以与共享,要么与所有人共享,要么仅与朋友共享 对于与所有人共享,我将 到目前为止,我已经建立了这个查询: 我如何修改此查询以显示与所有人共享的所有活动或仅与朋友共享的? 提前谢谢。1
存储在活动的sharewith
列中,用于仅与朋友共享的user_id
和2
。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);
}