1

さまざまなボックスを選択するフォームがあり、各ボックスに対していくつかのレコード (ボックスの開封数) がデータベースに存在しますが、選択したボックスにレコードが存在しない、つまりボックスが開かれていない可能性があります。 1回でも。現在、別のボックスを選択すると、ボックスのレコードが存在しない場合、空の配列も返されません。選択したボックスの空の結果も返されます。どうすればそれを達成できますか?私のクエリは

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つのボックスを選択してフォームを送信すると、2つのボックスのみにレコードが存在し、次のようなものが返されます

 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
    )

)

このように1つが空で3つのレコードすべてを取得するにはどうすればよいですか

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

ありがとう

4

1 に答える 1

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 句はわかりませんが...

于 2012-06-11T12:43:53.527 に答える