一部のユーザー入力からクエリをフィルター処理するために、mysql で複数テーブルの select ステートメントを使用しています。入力 $_POST 値は、1.zipcode [場所テーブルから] または 2.city [場所テーブルから] および/または 3.on_date [カレンダー テーブルから] および/または 4.title [投稿テーブルから] です。
FROM table_many
INNER JOIN posts ON posts.title LIKE '%{$title}%'
INNER JOIN users ON users.user_id = posts.user_id
INNER JOIN locations ON locations.post_id = posts.post_id AND locations.city = '$city[0]'
LEFT JOIN calendar ON calendar.post_id = posts.post_id AND calendar.on_date = '$date'
LEFT JOIN uploads ON posts.post_id = uploads.post_id
WHERE table_many.cat_id = '$row_cat[0]' AND table_many.post_id = posts.post_id";
この設定は、場所に対して機能します。郵便番号または都市のいずれかを入力すると、クエリは正しくフィルター処理されますが、入力から設定された $date 値と $title 値ではレコードが取得されません。
何か案は?それとももっと情報が必要ですか?前もって感謝します。