[PHP-users 21752]Re: PHP+MySQLのand検索、or検索について
Seto
seto @ 1kg.jp
2004年 5月 21日 (金) 11:16:45 JST
Setoです。
はじめまして。
>はじめて投稿します。php初心者です。
自分の意図する動作をしないときには
>フォーム上でand、orを選んでもand検索しかしません。
>何処が悪いのかを色々調べてはみたのですが、解決には至らない状態です。
>$key = $_POST['key'];
>if ((isset($key) and strlen($key) > 0)) {
> $key = trim($key);
> $key = mb_convert_kana($key, "s");
> $key = str_replace(" "," ",$key);
> if(!strrchr($key," ")){
> $arykey = explode(",", $key);
> $tmpkey = "or";
> }else{
> $arykey = explode(" ", $key);
> $tmpkey = "and";
> }
var_dump( $arykey ); // <------- こことか
>
> $where = " WHERE (( sisya Like '%$arykey[0]%' or nendo Like '%
>$arykey[0]%' or koban Like '%$arykey[0]%' or key Like '%$arykey[0]%' )";
>
> for($i = 1; $i < sizeof($arykey); $i++) {
> $where .= " " . $tmpkey;
> $where .= " ( bsisya Like '%".$arykey[$i]."%' ";
> $where .= "OR bnendo Like '%".$arykey[$i]."%' ";
> $where .= "OR bkoban Like '%".$arykey[$i]."%' ";
> $where .= "OR bkey Like '%".$arykey[$i]."%') ";
> }
> $where .= ")";
>}
>
>$sql = "select * from koban_data" . $where . "order by id'";
echo $sql; // <------- こことか
>$rst = mysql_query("select * from koban_data".$where."order by id", $conn);
>print("<table border=\"3\" style=\"empty-cells: show\">");
>*************************************
>**
などとして 変数の中身を確認する癖をつけましょう。
# デバッグが上手になることがプログラミングの近道だと思います。
# 16進ダンプとか印刷してコードを追うなんて事しないで済むので
# PHPはデバッグも楽だと思います。
表示された内容がおかしなところから どんどんさかのぼって行けば
間違いが見つかると思います。
がんばってください。
(正直 記載されたコードは読んでません。すみません。。)
Junya Seto
PHP-users メーリングリストの案内