絞込み条件にorを使う場合はどうすれば良いですか?

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
hinoue
記事: 2
登録日時: 2006年6月22日(木) 15:34

絞込み条件にorを使う場合はどうすれば良いですか?

投稿記事 by hinoue » 2006年6月22日(木) 15:53

お世話になります。

絞り込みの条件でandは条件を2つ書けばできますが、
orの条件を作成するのはどうやったらできますでしょうか?

また絞込みたい値(value)を文字でなく数字で判定することは可能でしょうか?


現状は以下のようにやっておりますが、当月しか表示されません。
具体的に当月以降を表示させたい場合はどのようにすれば良いでしょうか。 :cry:
<?php $month = date("Y-m"); ?>

<cmsd:group key="month" value="<?php print($month); ?>"/>

以上、よろしくお願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 絞込み条件にorを使う場合はどうすれば良いですか?

投稿記事 by webmaster » 2006年6月22日(木) 18:11

 hinoueさん、ご質問ありがとうございます。
 絞込み条件では、orを使う事ができません。m(__)m

 元々はカテゴリの代用的な機能としてつけたもので、複雑なクエリーを
想定していないのです。ご期待に沿えず申し訳ありません。

 また、valueを文字でなく数字で判定したいとのことですが、これは
大小判定をしたいということでしょうか。こちらも現状、対応しておりませんので、
完全一致するかどうかで絞込みすることしかできません。
<?php $month = date("Y-m"); ?>

<cmsd:group key="month" value="<?php print($month); ?>"/>
 上記方法はとてもうまいやり方だと思います。

 もしどうしてもということでしたら、あまりパフォーマンスの良い方法とも思えませんが、
この方法を拡張し、PHPのforループなどでvalue値を変えて何度もcmsdタグを
出力していく方法があるかと思います。

コード: 全て選択

<?php
for ( $iMonthCount = 0; $iMonthCount <= 11; $iMonthCount++ )
{
 $strMonth = date( "Y-m", mktime( 0, 0, 0, date("m") - iMonthCount, date("d"), date("Y") ) );
?>
<cmsd:group key="month"  value="<?php print($strMonth); ?>"/>
<?php
}
?>
 こんな感じですが、すいません、時間が取れず試しておりません。m(__)m
 大まかな考え方として参考までにご利用ください。

hinoue
記事: 2
登録日時: 2006年6月22日(木) 15:34

アドバイスありがとうございました。

投稿記事 by hinoue » 2006年6月23日(金) 13:31

アドバイスありがとうございました。

以下のようにして2006-06 or 2006-07 or 2006-08のデータを表示
させたかったのですが、valueに最後に入った値( 2006-08 ) のみしか
表示できませんでした。
絞り込み条件でorの変わりになる良い方法はありませんか?

<cmsd:entrylist name="hogehoge" design="default" rows="30">
<?php for ( $iMonthCount = 0; $iMonthCount <= 2; $iMonthCount++ )
{
$strMonth = date( "Y-m", mktime( 0, 0, 0, date("m") + $iMonthCount, date("d"), date("Y") ) );
<cmsd:group key="month" value="<?php print($strMonth); ?>"/>
}
?>
<cmsd:sort key="date1" order="desc"/>
</cmsd:entrylist>

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: アドバイスありがとうございました。

投稿記事 by webmaster » 2006年6月23日(金) 14:14

 webmasterです。すいません、前回書いたサンプルソースが間違って
おりました。forループの中にはタグ全体を入れるようにしてみてください。
 前回のソースだと、groupタグだけが繰り返されてしまい、意味を成さないと
思います。すいません。

 再度お試し頂ければ幸いです。

<?php
for ( $iMonthCount = 0; $iMonthCount <= 2; $iMonthCount++ )
{
$strMonth = date( "Y-m", mktime( 0, 0, 0, date("m") - iMonthCount, date("d"), date("Y") ) );
?>
<cmsd:entrylist name="hogehoge" design="default" rows="30">
<cmsd:group key="month" value="<?php print($strMonth); ?>"/>
<cmsd:sort key="date1" order="desc"/>
</cmsd:entrylist>
<?php
}
?>

返信