2017-12-12 28 views
0

내가보기의 상단경고 메시지 불법 기능의 MySQL PHP

PHP는 오류가

심각도를 발생했습니다 (제대로 예상대로 데이터도보기로드)에서이 오류가 어디에서 입력 오프셋 : 경고 메시지 : 잘못된 유형의 파일 이름을 상쇄 : 데이터베이스/DB_query_builder.php 역 추적 :

파일 : C : 32 기능 : \ wamp64 \ www가 \ procurement_v_alpha1 응용 프로그램의 \ 모델 Notifications.php 라인 \ \ 어디

public function user_alert() 
    { 
     $session_data = $this->session->userdata['logged_in']; 
     $role = $session_data['role']; 
     $dept = $session_data['dept']; 

     $data_user = array(
      'role' => $role, 
      'dept' => $dept 
     ); 

     $role = $data_user['role']; 
     $this->db->from('notification'); 
     $this->db->select('pr_id,item_name,dept_division'); 
     $this->db->where($role, 0); 

     $query = $this->db->get(); 
     return $query -> result_array(); 
    } 

너희들이 나를 도울 수, 같은

내 모델이 보인다? 'where'메소드를 사용할 때 문제가 있습니까?

+0

'$ role'이 아닌'role'이어야합니다. – urfusion

+0

예.하지만 변수이며, 사용자에 따라 다릅니다. 그래서 그 열을 선택하는 데 필요한 '역할'마다 하나의 열이 있습니다. 세션 데이터가 없어도 제대로 작동했습니다. 하지만 지금이 오류가 발생했습니다 – Code551

+0

하지만 모든 사용자 및 '$ 역할'에 대해 동일해야하는 해당 필드 이름은 가치가 있어야한다고 생각합니다. 그래서'('role', $ role)'이어야합니다. 자세한 내용은 테이블 구조를 추가 할 수 있습니까? – urfusion

답변

0

액세스하려는 항목이 없으면 userdata() 메서드가 NULL을 반환합니다. 이것이 사실 일 수 있습니까? 아마 당신은 어떤 isnull 수표를 광고해야합니다.

0

여기에 문제가 있습니다. $this->db->where($role, 0); $role 여기에 주어진 데이터가 있습니다 $role = $data_user['role']하지만 where 절에서 필드 이름을 지정해야합니다.하지만 당신은 where 절에서 역할 값을 전달하려고 시도합니다. 다음과 같이하십시오.

$this->db->where('role', 0) 

확인하고 싶은 필드 이름을 'role'으로 지정하십시오.