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%'