0

一部のユーザー入力からクエリをフィルター処理するために、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 値ではレコードが取得されません。

何か案は?それとももっと情報が必要ですか?前もって感謝します。

4

1 に答える 1

0

タイトルの tableName を省略しましたINNER JOIN posts ON title LIKE '%{$title}%'

試してみてください tableName.title

クエリが機能しなくなるようなものは何も見当たりませんが、もう一度確認してください

于 2013-01-22T20:30:16.003 に答える