スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Criteria(クライテリア)による条件指定

SQL(Select)の指定に当たる。
add句で条件を指定する。(where句に当たる)
条件が必要な分、add句を指定する。
以下の書き方の場合、add間はand条件になる。

[actions.class.php]
  public function executeIndex()
  {
    //Criteriaによる指定
      $c = new Criteria();
      $c->add(CommentPeer::NICKNAME, 'bbb');
      $c->add(CommentPeer::ID, '2');
      $this->comment = CommentPeer::doSelect($c);

    return sfView::SUCCESS;
  }

[indexSuccess.php]
<?php print_r($comment)?>

上記のadd句の部分をaddOrとすると、or条件となる。
この書き方の場合は、項目名が同一であることが条件になる。

・・・と等しくない(notequal)の場合は、第3パラメータに以下のように指定する。
add(CommentPeer::ID, '2',criteria::NOT_EQUAL);

・・・を含む(like)の場合は、第3パラメータに以下のように指定する。
add(CommentPeer::ID, '%2%',criteria::LIKE);

・・・より大きい('>'(greater than))の場合は、第3パラメータは以下のように指定する。
add(CommentPeer::ID, '2',criteria::GREATER_THAN);

・・・以上('>='(greater equal)の場合は、第3パラメータは以下のように指定する。
add(CommentPeer::ID, '2',criteria::GREATER_EQUAL);

・・・より小さい('<'(less than))の場合は、第3パラメータは以下のように指定する。
add(CommentPeer::ID, '2',criteria::LESS_THAN);

・・・以下('<'(less equal))の場合は、第3パラメータは以下のように指定する。
add(CommentPeer::ID, '2',criteria::LESS_EQUAL);

異なるカラムで条件を指定するときは、getNewCriterionを使用する。
$c1 = $c->getNewCriterion(CommentPeer::ID,'2', Criteria::GREATER_THAN);
$c2 = $c->getNewCriterion(CommentPeer::NICKNAME,'%a%', Criteria::LIKE);
$c1 -> addAnd($c2);
$c -> add($c1);

上記の例は、$c1と$c2をANDでつなげる例(id > 2 and nickname like '%a%')である。
ORでつなげるときは、addAndをaddOrにする。

ソートするときは、以下のようにする。
降順:
addDescendingOrderByColumnを使用する。
    例:addDescendingOrderByColumn(CommentPeer::ID);
    コメントテーブルのIDで降順ソート。
昇順:
addAscendingOrderByColumnを使用する。
    例:addAscendingOrderByColumn(CommentPeer::ID);
    コメントテーブルのIDで昇順ソート。

where句の後を直に指定したいときは、CUSTOMを指定する。
add(CommentPeer::ID, CommentPeer::ID." between '1' and '3'" ,Criteria::CUSTOM);
betweenの前に半角スペースを忘れないように。




スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。