[pgsql-jp: 28947] Re: メッセージの読み込みでエラー
Katsuyuki Maeda
kei @ nanet.co.jp
2003年 2月 5日 (水) 18:46:06 JST
前田@nanetです。
On Wed, 5 Feb 2003 18:20:00 +0900
"kenji" <kenji @ arka.jp> wrote:
> > この行の下で、echo $sql;してみればよいのでは?
>
> これを実行しますと
> select * from kifu where title like '%%' title like '%%' title like '%%'
> title like %% order by nanki
という結果が得られているのですから、
> > where 句の and やら or が抜けているだけではないでしょうか?
の指摘の通りだと思います。
> 先日まで表示されていたのが、エラーが返るようになりました。
先日まで表示されていたのと、他に何かが変っていませんか?
> if ($w1 != "記入なし"){$w1 = " title like '%$w1%'";}
> elseif($w1 == "記入なし"){$w1 = "";}
> if ($w2 != "記入なし"){$w2 = " title like '%$w2%'";}
> elseif($w2 == "記入なし"){$w2 = "";}
> if($w3 == "記入なし"){$w3 = "";}
> elseif($w1 == $w2){$w3 = " title like '%$w3%'";}
> elseif($w1 != "記入なし"){$w3 = " and title like '%$w3%'";}
> elseif($w2 != "記入なし"){$w3 = " and title like '%$w3%'";}
> if($w4 == "記入なし"){$w4 = "";}
> elseif($w1 == $w3){$w4 = " title like %$w4%";}
> elseif($w2 == $w3){$w4 = " title like %$w4%";}
> elseif($w1 != "記入なし"){$w4 = " and title like %$w4%";}
> elseif($w2 != "記入なし"){$w4 = " and title like %$w4%";}
> elseif($w3 != "記入なし"){$w4 = " and title like %$w4%";}
ちょっとパズルになっていて追いきれませんが、以前はたまたま、
問題ないSQL分を出力していただけではないですか?
今までの仕組みをそのままにするなら、以下の様に (true) を使うと、
簡単に書けるかも知れません。
| if ($w1 != "記入なし") {
| $w1 = " title like %$w1% ";
| }
| else {
| $w1 = "(true) ";
| }
|
| if ($w2 != "記入なし") {
| $w2 = " and title like %$w1% ";
| }
| else {
| $w2 = " and (true) ";
| }
--
Nagasaki Network Service (http://www.nanet.co.jp/)
kei @ nanet.co.jp <Katsuyuki Maeda> (http://www.nanet.co.jp/~kei/)
kei-neverread @ nanet.co.jp (for spam ONLY ゴミ箱直行便)
「終わらないプロジェクトはない。終わっちゃうプロジェクトはあるけど。」
pgsql-jp メーリングリストの案内