2012-04-03 3 views
0

에서 도우미에서 databa 전달 그러니까 기본적으로 내가 도우미가 - 내가보기에서 데이터를 전달해야CodeIgniter는 두 개의 데이터베이스 테이블

function records() 
{   
    $ci = get_instance();      
    $ci->db->order_by("date", "desc"); 
    $ci->db->limit(20); 
    $query = $ci->db->get('records'); 
    $data =array(); 
    foreach($query->result_array() as $orders) 
    { 
    $data[] = $orders; 
    }    
    return $data; 
} 

을하지만, 현재 난 단지 테이블 레코드에서 데이터를 전달하고있다. 또한 레코드에서 $ data []를 얻은 후에 현재 레코드 ID를 확인한 다음 사용자 인 다른 테이블의 모든 사용자 세부 정보를 동일한 $ data []로 전달해야합니다. 내가 어떻게 해? 기본적으로 레코드에서 모든 데이터를 가져 와서 레코드가 어떤 사용자인지 확인한 다음 get_where ('users', array ('id'=> $ data [ 'user_id'])))를 사용하여 해당 사용자를 검색합니다. 새로운 배열 또는 동일한 $ data [] 배열에 사용자 데이터를 추가하십시오. 이게 뭔가 행해질 수 있니? 그렇다면 그 예를 보여주십시오.

+1

먼저 데이터베이스 연결을위한 모델을 항상 만듭니다. 도우미는 데이터베이스 쿼리를 사용하지 않습니다. CI에서 MVC 구조를 사용하여 애플리케이션을 easly 빌드하십시오. http://codeigniter.com/user_guide/overview/mvc.html – safarov

+0

헬퍼 모델을로드 할 수 있습니까? –

+0

어쨌든 내 첫 번째 질문에 대해 도움을 주시겠습니까? –

답변

1

가입을 원하십니까?

http://codeigniter.com/user_guide/database/active_record.html

$ci->db->order_by("date", "desc"); 
    $ci->db->limit(20); 
    $query = $ci->db->from('records')->join('users', 'records.user_id=users.id')->get(); 

는 사용자의 ID를 참조하는 기록 테이블에 정확한 필드 이름을 사용하는 쿼리를 수정해야합니다. 위의 의견은 옳습니다. 도우미는 절대적으로 쿼리의 장소가 아닙니다. 실제로 get_instance를 사용하여 도우미에서 CI 객체를 가져 오는 좋은 예는 생각할 수 없다. CI 독립적 함수 여야한다.

0

첫째; 데이터베이스 조작을 위해 모델을 사용하는 것이 항상 권장됩니다. 모델에서 데이터베이스 정보를 검색하려면 라이브러리를 사용하는 것이 좋습니다. 도우미는 날짜 계산, 검색 기능 등과 같이 항상 데이터베이스가 필요하지는 않은 목적으로 사용될 수 있습니다.

둘째로; 알다시피, 테이블에서 배열로 레코드를 가져온 다음 사용자가 다른 데이터베이스에서 가져온 레코드가이 배열 (또는 이와 비슷한)에 있는지 여부를 확인하려고합니다. 그렇다면 간단히 모든 레코드를 배열로 가져올 수 있으며 사용자 세부 정보 (예 : 사용자 ID)를 다른 배열이나 변수로 가져올 수 있습니다. 나머지 부분은 모두 배열 작업입니다.

관련 문제