0

OR 条件を組み合わせてデータベースに対してクエリを実行しようとしています。データベースの対応するフィールドをフォームに入力し、データを受け取った後、次のようにクエリを入力します。

if ($state != '') {
    $xstate = " `State` LIKE '%" . $state . "%' ";
    $Isall = '0';
} else {
    $xstate=" `State` LIKE '-' ";
}

if ($dateStart != '' && $dateEnd != '') {
    $xdateStart = " `datefill`  BETWEEN '" . $dateEnd . "' AND '" . $dateStart . "'";
    echo $xdateStart;
    $Isall = '0';
}

ご覧のとおり、フィールドが空かどうかを確認してから、クエリの作成を開始します。関連するすべての質問をした後、クエリは次のようになります。

$query="SELECT " .$field  . "  FROM  issueslog WHERE  ".$xdateStart." OR " .$xCode   ."   ;

など、私の問題は、いくつかのフィールドに入力するときです。たとえば、xCode には「900」と言うデータがあり、上記のように dateStart は
$xdateStart=" datefill BETWEEN '".$dateEnd."' AND '".$dateStart."'";

私が理解しているのは、特定の日付の間のコード「900」に対応するデータを取得することですが、xCode 900 のみに対応する結果が得られ、日付が放棄されたようです。

提案をいただきたいのですが、よろしくお願いします。

編集
私の生成されたクエリは次のとおりです。

SELECT *  FROM  issueslog WHERE   `datefill`  BETWEEN '2013-05-24' AND '2013-05-24' OR  `xCode` LIKE '-'  OR  `Address` LIKE '-'  OR  `tname` = '-'  OR  `fname` LIKE '-'  OR  `Phone1` LIKE '-'  OR  `State` LIKE '-'  OR  `City` LIKE '%TelAviv%' 
4

1 に答える 1