私はPHPとMySQLで働いています
壁を殴りたい気分です。私はこれを行う方法がわかりません。それは私を怒らせています。私は以前にそのようなことをたくさんしましたが、これはうまくいきません。うーん。助けてください!!!!
私は検索を行っています。お客様は「88 ブレーキ パッド」のように入力します。「ブレーキ」と表示されているすべての部品、「パッド」と表示されているすべての部品、および 88 年が記載されているすべての部品を返したいと思います。ここでの問題は、年と部品が異なる表にあることです。
例:
年表
ID | part_id | year |
============================
1 | 15 | 1945 |
2 | 15 | 1946 |
3 | 16 | 1984 |
4 | 18 | 1987 |
部品表
ID | part_name |
=====================
15 | brakes |
16 | hose |
17 | crank |
18 | muffler |
このSQLは、パーツテーブルから引き出すときに機能します
SELECT DISTINCT * FROM hj_parts WHERE part_name LIKE "%brakes"
出力を取得します
ID | part_name |
=====================
15 | brakes |
したがって、誰かが「brakes 87」と入力した場合、パート 15 (ブレーキ) とパート 18 (1987 年のものであるため) のすべての情報を取得する必要があります。
私は完全に迷っています。
ある年からすべての部分を引き出すためにこのようなことをしましたが、微調整するだけでよいと思いましたが、役に立ちません.
$query = "SELECT hj_parts.* FROM hj_parts JOIN(SELECT DISTINCT part_id FROM hj_years WHERE (year BETWEEN $starter AND $ender) OR (year='all')) hj_years ON hj_parts.id = hj_years.part_id";