2012-02-07 6 views
0

echo "h";을 if 문 안에 넣으면 아무 것도 반환되지 않습니다. 또한 SQL 코드 안에 WHERE 절을 넣고이 메서드를 사용하면 foreach 루프에서 반환 된 항목이 없습니다. 왜 이런 일이 일어나고 있는지에 대한 아이디어가 있습니까? 난 단지 현재 로그인 한 사용자와 일치하는 사용자가 필요합니다. 그리고 스크립트의 행함은 사용자 테이블데이터베이스를 쿼리하는 CodeIgniter

public function dcr() { 
    // pass all dashboard accesses through this function 
    $username = $this->session->userdata("username"); 
    $query = $this->db->query("SELECT * FROM users"); 
    foreach ($query->result() as $row) { 
        echo "h"; 
     if ($username == $row->username) { 
       $data = array('firstname' => $row->firstname); 
       $this->load->view('dashboard', $data); 
      } 
    } 
} 
+0

테이블에 사용자가 있습니까? –

+0

그것은 사용자 테이블, WHERE, $ username 등의 표현에 따라 다릅니다. 답을 찾는 데 도움이됩니다. –

+0

Ci 컨트롤러에서 세션을 잘못 설정했습니다. 나는 지금 일하고있다. –

답변

1

이 (테스트하지 않았습니다) 트릭을 할해야의 모든 행 통해 반복되는 것을, 당신은하지 않습니다 if 문이 필요합니다. 코드는 깨끗하고 읽기 쉬워 져서 get_where 함수를 사용하십시오.

public function dcr() { 
    // pass all dashboard accesses through this function 
    $username = $this->session->userdata("username"); 
    $query = $this->db->get_where('users', array('username' => $username)); 
    foreach ($query->result() as $row) { 
     $data = array('firstname' => $row->firstname); 
     $this->load->view('dashboard', $data); 
    } 
} 
+0

고마워요! Ci 방법을 사용하여 시작해야합니다. 누군가 보안 혜택이 있다고 나에게 말했습니다. –

+0

예, CI 방법을 사용하기 위해 변경해서는 안됩니다. – Jasonw

관련 문제