2012-01-16 37 views
0

我正在開發基於CodeIgniter和MySQL的項目。我需要建立CodeIgniter查詢的建議。CodeIgniter查詢查看朋友所做的所有帖子

我想要什麼來實現的:

我有3個表,profileactivityfriends。這些表的結構是:

輪廓

user_id | name 

活動

activity_id | message | user_id | sharewith | createdtime 

朋友

id | user1 | user2 | arefriends 

現在我想根據用戶分享的內容,將所有用戶的帖子顯示給每個人/朋友的牆。我只有兩個選項可供分享,或是與大家分享與朋友分享

對於大家我在活動sharewith列存儲1user_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);    
} 

我怎麼能修改此查詢,顯示其中任何一個都大家共享的所有活動,與朋友只共享?

在此先感謝。

+0

如果可以,給一些朋友表的樣本數據。很難用清晰的結構來分析查詢。 – Sakthi 2012-01-17 10:08:58

回答

0

看起來你唯一需要的是一個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);    
}