0

クエリを次のようにします。

$conditions = array(
                        'ManageTrackby.trackby_num NOT LIKE' => '%n/a%',
                        'Balancesheet.subscriber_id' => $_SESSION['Auth']['User']['subscriber_id'],
                        'Balancesheet.show_id' => $this->Session->read('openshowid'),
                        'OR' => array('Balancesheet.season_id' => $season_id,  'Balancesheet.season_id is null'),
                        'OR' => array('Balancesheet.episode_id'=> $episode_id, 'Balancesheet.episode_id is null')
                    );

ここで最後のオプションをスキップORすると、以下の結果が得られます。

Array
(
[ManageTrackby.trackby_num NOT LIKE] => %n/a%
[Balancesheet.subscriber_id] => 105
[Balancesheet.show_id] => 56
[OR] => Array
    (
        [Balancesheet.episode_id] => 86
        [0] => Balancesheet.episode_id is null
    )

)

ここではSEASON_ID、条件から外れていますが、その理由は何ですか?

私を案内してください!

4

2 に答える 2

0

配列が OR 要素を 2 回設定しています。2 つの OR ステートメントをそれぞれ個別の配列に入れます。

  $conditions = array(
    'ManageTrackby.trackby_num NOT LIKE' => '%n/a%',
    'Balancesheet.subscriber_id' => $_SESSION['Auth']['User']['subscriber_id'],
    'Balancesheet.show_id' => $this->Session->read('openshowid'),
array('OR' => array('Balancesheet.season_id' => $season_id,  'Balancesheet.season_id is null')),
array('OR' => array('Balancesheet.episode_id'=> $episode_id, 'Balancesheet.episode_id is null'))
);
于 2012-10-26T13:45:06.630 に答える