2013-09-24 4 views
0

컨트롤러를 기록 검색합니다는 CodeIgniter를 통해 사용자 이벤트에

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

모델에서 사용자 ID를 전달하고 해당 사용자 ID의 이벤트를 선택할 수 있습니다. –

답변

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 추가 답변보기, 사용자가 로그인 할 때 세션에 로그인 한 사용자 ID가 저장되어있을 수 있습니다. 사용자는이를 사용하고 매개 변수로 전달할 수 있습니다. –

+0

세션에서 사용자 ID를 설정하지 않았습니다.하지만 어떻게 설정해야합니까? 나는? –

1

간단히 말해서 파의 이벤트를 추출 할 수 있습니다 다음과 같은 방법으로 모델 ticular 사용자 :

컨트롤러 액션에서
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

위와 같은 방법으로 사용자를 시스템에 성공적으로 로그인 한 후 세션에 사용자 ID를 저장할 수 있습니다 .... –

1

이런 식으로 시도해보십시오. 사용자가 사이트에 로그인하려고하면 모델에서 다음 작업을 수행해야합니다.

당신의 search_member_events 기능 사용 세션에서 지금
$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 
} 

변화

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

처럼 yours.Please 모든 입력 변수는 당신이 어떤 문제에 직면하면 알려주세요.

관련 문제