この検索クエリは、思ったほど機能していないように感じます。ksisoldby
選択された項目のみが、 と同じ (大文字と小文字は区別されないためILIKE
)のものであることを確認したいと思います$user
。AND
また、 s およびsで指定された他のフィールドは、OR
この選択を絞り込むための可能な方法です。
"SELECT
id,
status,
customer_id,
shipping_address_id,
order_number,
reference,
ship_via_id,
order_date :: date,
due_date :: date,
created,
sales_tax,
freight,
taxable,
nontaxable,
job_name,
order_description,
ship_to_name,
ship_to_address1,
ship_to_address2,
ship_to_city,
ship_to_state,
ship_to_zipcode,
name,
address1,
address2,
city,
state,
zipcode,
act_ship_date,
ksisoldby
FROM sales_orders
WHERE ksisoldby ILIKE '".$user."'
AND (order_description ilike
'%".implode("%' AND order_description like '%", $search)."%')
OR (order_number ilike
'%".implode("%' AND order_number like '%", $search)."%')
OR (name ilike
'%".implode("%' AND name like '%", $search)."%')
OR (reference ilike
'%".implode("%' AND name like '%", $search)."%')
ORDER BY order_number DESC";
私はこれを正しく行いましたか、正しく設定されていないのは私のデータですか、それともこれらのAND
および/またはステートメントが句OR
を上書きしていますか? WHERE
助けてくれてありがとう。