2013-09-24 59 views
0

控制器:檢索通過笨登錄的用戶事件

public function searchevent() { 
    $this->load->model("users_model"); 
    $data["rows"] = $this->users_model->search_member_events(); 
    $this->load->view("search_view", $data);   
} 

型號:

public function search_member_events() { 
    $this->db->select('*'); 
    $this->db->from('users'); 
    $this->db->where('id', '$userid'); 
    $this->db->join('events', 'users.id = events.user_id'); 
    $q = $this->db->get();  
    if ($q->num_rows() > 0) { 
     foreach ($q->result() as $row) { 
      $data[] = $row; 
     } 
     return $data; 
    } 

} 

觀點:

<div class="member_search_results"> 
    <h2>Your Events </h2> 
    <?php if(isset($rows)) : foreach($rows as $r): ?> 
     <div class="outer"> 
     <div class='single_result'> 
      <strong class='title'><?php echo $r->title ?></strong> 
      <div class="outer"> 
       <span class='start'><strong>Starts at:</strong> <?php echo $r->start ?></span> 
       <span class='end'><strong>Ends at:</strong> <?php echo $r->end ?></span> 
       <span class='time'><strong>Time:</strong><?php echo $r->time ?></span>    
      </div> 
      <div class="outer"> 
       <span class='location'><strong>Location:</strong><?php echo $r->location ?></span> 
      </div> 
      <div class="outer"> 
       <span class='description'><strong>Details:</strong><?php echo $r->description ?></span> 
      </div> 
     </div> 
     <?php endforeach; ?> 
    <?php else : ?> 
    <h2>You do no have any events yet, please <?php echo anchor ("createevent", "Create Event") ?></h2> 
    <?php endif; ?> 
</div> 

我有兩個數據庫表用戶和事件。我想要的是當用戶登錄時..所有EVENT表登錄用戶的事件都應顯示在用戶儀表板上。現在它正在顯示所有事件。

+0

你可以讓你的問題更清楚嗎? –

+0

當用戶登錄時......他的數據庫事件應顯示在儀表板上,以便他們可以編輯或刪除它們。現在我的查詢顯示數據庫中的所有事件..不是這個特定用戶 –

+0

在你的模型中,你可以通過用戶標識並選擇該用戶標識的事件... –

回答

1

變化模型的功能,如:

public function search_member_events($user_id){  

    $this->db->select('*'); 
    $this->db->from('users'); 
    $this->db->join('events', 'users.id = events.user_id'); 
    $this->db->where('users.id',$userid);  
    $q = $this->db->get();  
    if($q->num_rows() > 0){ 
     foreach($q->result() as $row){ 
      $data[] = $row; 
     } 
     return $data; 
    } 

} 

控制器:

public function searchevent(){ 
    //get from session if you've set userid on login, like 
    $user_id = $this->session->userdata("user_id"); 
    $this->load->model("users_model"); 
    $data["rows"] = $this->users_model->search_member_events($user_id); 
    $this->load->view("search_view", $data);   
} 

可能是你有沒有用戶名和密碼校驗後登錄某些型號的功能,在相同的功能,可以設置用戶ID登錄用戶在會話中,通過執行:

//get the user id of loggedin user after 
//login check and set in session 
$this->session->set_userdata("user_id", $user_id); 
+0

從這個變量$ userid將獲得用戶ID? –

+0

@ user2584190看到已添加的答案,您可能會在用戶登錄時保存會話中的登錄用戶標識,您可以使用它並將其作爲參數傳入 –

+0

我沒有在會話中設置用戶標識..但需要設置它一世? –

1

只需提取參數從模型滿足特殊用戶的方式如下:

public function search_member_events($userid){  

$this->db->select('*'); 
$this->db->from('users'); 
$this->db->join('events', 'users.id = events.user_id'); 
$this->db->where('id',$userid); 
$q = $this->db->get();  
if($q->num_rows() > 0){ 
    foreach($q->result() as $row){ 
     $data[] = $row; 
    } 
    return $data; 
} 

} 

在控制器動作,你可以從會話的用戶ID,並相應獲得的數據:

$this->load->model("users_model"); 
$userid = $this->session->userdata('userid');// Assumed that you've already set userid in session 
$data["rows"] = $this->users_model->search_member_events($userid); 
$this->load->view("search_view", $data); 

設置會話,你必須先裝「會議'庫,然後用鍵和值設置會話。

$this->load->library('session'); 
$this->session->set_userdata('key', 'value'); 
+0

這段代碼將工作,如果我已經在會話中設置用戶ID ..我可以在會話中設置用戶ID? –

+0

用戶通過以上方式成功登錄系統後,您可以在會話中存儲用戶標識.... –

1

嘗試這樣的事情。當用戶嘗試登錄您的網站時,您需要在模型中執行以下操作。

$sess_arr=array(); 
$pass = $this->input->post('password',true); //change password field with yours 
$email = $this->input->post('emailLogin',true); //change emailLogin field with yours 

$rs=$this->db->select('id')->where('email',$email)->where('password',$pass)->get('users'); 
if($rs->num_rows()>0) 
{ 
    $data=$rs->row_array(); 
    $sess_arr['id'] =$data['id']; 
    $this->session->set_userdata('user_login',$sess_arr); //it will set the logged in user id to user_login variable 
} 

現在在你的search_member_events功能使用會話像

$user_id=$this->session->userdata['user_login']['id']; 

改變所有yours.Please輸入變量讓我知道,如果你面對任何問題。