두 개의 테이블 'events_archive'와 'demo_users'가 있습니다. 이벤트 테이블에서 각 이벤트는 고유 한 ref_id
값, demo_id
값 (이벤트에 참여한 논증 자의 사용자 ID) 및 client_id
값 (이벤트에 참여한 클라이언트의 사용자 ID)을가집니다. 데모 테이블에서 각 데모는 이벤트 표의 demo_id
에 해당하는 고유 한 id
값을가집니다.CodeIgniter의 JOIN 문과 관련된 PHP 문제
내가 원하는 것은 특정 클라이언트가 수행 한 이벤트에 참여한 모든 데모 테이블을 나열하는 것입니다. 세션 데이터가있는 특정 클라이언트의 사용자 ID가 표시됩니다.
client_id
값이 4라고 말하면 이벤트를 공유 한 (즉 테이블에 행을 공유 한) 모든 개별 시위자를 나열하고 싶습니다. 나는 현재 내 CodeIgniter의 모델이 사용하고 있습니다
function demos($mid){
$this->db->select('demo_users.*');
$this->db->from('demo_users');
$this->db->join('events_archive','events_archive.demo_id = demo_users.id');
$this->db->where('events_archive.client_id',$mid);
$this->db->limit(10);
$this->db->order_by('users_demonstrators.products_sold','asc');
$demos = $this->db->get();
foreach($demos->result() as $demo){
echo $demo->first_name;
}
}
하지만 그 대신 개별적으로 시위대를 나열하는, 그것은 반복을 복제합니다. Demonstrator A, Demonstrator D, Demonstrator F 등을 나열하는 대신 Demonstrator A, Demonstrator A, Demonstrator A 등을 나열합니다. 어디에서 잘못 될지 아는 사람이 있습니까?
'$ this-> db-> distinct(); '를 추가했는데 완벽하게 작동했습니다. 감사 – hohner