2012-06-11 2 views
1

다른 상자를 선택하는 양식이 있으며 각 상자마다 데이터베이스에 몇 가지 레코드 즉 상자의 개구부 수가 존재하지만 선택한 상자의 경우 레코드가 존재하지 않습니다. 즉, 상자가 한 번만 열리지 않습니다. 현재 다른 상자를 선택하고 상자에 레코드가 없으면 빈 배열을 반환하지 않고 선택한 상자에 대해 빈 결과를 반환하기를 원합니다. 나는 어떻게 그것을 성취 할 수 있는가? 내 질문은SQL을 사용하여 빈 레코드 얻기

public function getBoxOpenings($boxes, $from_date, $to_date){ 
$query = $this->db->select('box_id, COUNT(box_id) AS Openings') 
    ->from('mc_boxes_has_openings') 
    ->where_in('box_id', $boxes) 
    ->where('actiontime >=', $from_date) 
    ->where('actiontime <=', $to_date) 
    ->group_by('box_id') 
    ->get(); 
$data = $query->result_array(); 
return $data; 
} 

편집 :

내가 3 상자를 선택하고 양식을 제출하고 기록 그것은 내가 세 가지를 모두 얻을 수있는 방법이

Array 
(
[0] => Array 
    (
     [mc_boxes_idmc_boxes] => 12 
     [location] => FRA-Air 
     [Openings] => 1 
    ) 

[1] => Array 
    (
     [mc_boxes_idmc_boxes] => 14 
     [location] => FRA-Hof 
     [Openings] => 1 
    ) 

) 

같은 것을 반환 단지 2 상자를 위해 존재하는 경우 이

[2] => Array 
    (
     [mc_boxes_idmc_boxes] => 16 
     [location] => Test 
     [Openings] => 
    ) 

감사 등의 비어있는 레코드

+0

더 많은 질문을 정교하게하십시오. 테이블을 묘사하고 무엇이'box_id'가 나타내는지 ... –

+0

@ Fèlix Galindo Allué ok 그것을 편집하겠습니다. –

+0

@ FèlixGalindoAllué 편집 된 질문에 답변했습니다. –

답변

1

전체 레코드를 계산하지 않는 이유는 무엇입니까?

public function getBoxOpenings($boxes, $from_date, $to_date){ 
$query = $this->db->select('box_id, COUNT(*) AS Openings') 
    ->from('mc_boxes_has_openings') 
    ->where_in('box_id', $boxes) 
    ->where('actiontime >=', $from_date) 
    ->where('actiontime <=', $to_date) 
    ->group_by('box_id') 
    ->get(); 
$data = $query->result_array(); 
return $data; 
} 

나는 당신의 GROUP_BY 절을 이해하지 않지만

...

+0

다른 상자는 다른 상자가 있으므로 상자의 개통을 계산해야합니다. –

관련 문제