방금 Codeigniter로 시작했는데 이것이 나를 미치게합니다. 사용자가 프로그램을 구입했는지 여부를 결정하는 쿼리가 있습니다. 그런 다음 해당 프로그램의 유형 범주를 실행하여 다른 테이블에 쿼리를 기록한 횟수를 결정해야합니다. 혼란을 가져 주어서 죄송합니다.codeigniter를 사용한 다중/서브 쿼리
두 모델을 내 컨트롤러에서보기로 두 배열을 반환하는 데 문제가 있습니다.
function specificPrograms() {
$specific_sql = $this->db->query("SELECT program,created FROM `assessment` WHERE uid = $this->uid");
if($specific_sql->num_rows() > 0) {
foreach ($specific_sql->result() as $specific) {
$data[] = $specific;
$this->type = $specific->program;
}
return $data;
}
$sub_sql = $this->db->query("SELECT id FROM othertable WHERE user_id_fk = $this->uid and type = '$this->type'");
if($sub_sql->num_rows() > 0) {
foreach ($sub_sql->result() as $otherp) {
$data[] = $otherp;
}
return $data;
}
}
그럼 내 컨트롤러에서 내가 가진
, 어떤 도움$data['specific'] = $this->user_model->specificPrograms();
$data['otherp'] = $this->user_model->specificPrograms();
감사합니다.
코드에 대한 기대치를 더 설명 할 수 있습니까? 이것이 실행 된 후에'$ data [ 'specific']'과'$ data [ 'otherp']'가 무엇을 기대합니까? 지금 그들은 무엇으로 설정되어 있습니까? –
물론, 기본적으로. 사용자가 3 개의 별도 프로그램을 구입하고 각 프로그램에 대해 특정 횟수만큼이 프로그램을 사용한 경우이 번호는 othertable의 ID로 기록됩니다. 예를 들어, Bob은 제품 1, 제품 2 및 제품 3을 구입했습니다. Bob이 구입 한 '프로그램'과 제품 또는 유형에 해당하는 타사 테이블에 기록 된 ID의 수를 알아야합니다. 그게 말이 되니? – user1011713
죄송합니다. 더 나은 예를 들어 봅시다. Bob은 야구, 농구, 축구 운동 등 3 가지 운동을 구입했습니다. 각각에 대해 기록 된 두 번째 SQL 쿼리에서 반환 된 num-rows를 사용하여 특정 수의 운동을 수행했습니다. 나는 스포츠 (농구, 축구, 야구 ...)와 밥이 각 스포츠 (카운트 아이디)를 위해 한 운동 수와 함께 필요합니다. – user1011713