構築中の EC サイトに商品検索機能を作ろうとしていますが、少し問題があります。
3 つのテーブル (categories、sub_categories、products) があります。
カテゴリ テーブル フィールド: (categoryID、categoryName、active、image)
sub_categories テーブル フィールド: (categoryID、categoryName、parentCatID、active、image)
products テーブル フィールド: (productID、shortDescription、longDescription、image、catID、subCatID、active、price、delivery、weight)
ユーザーが短い説明または長い説明の一部を入力した場合、またはユーザーがカテゴリまたはサブカテゴリ名の一部を入力した場合、それらのカテゴリ内のすべての製品を検索する必要があります。
JOIN を実行するか、複数の SQL クエリを実行するかがわかりません。正直なところ、私は数時間いじっていましたが、実際にはどこにも行き着いておらず、今は設計図に戻って助けを求めています.
私の最初の試みは次のようになりました:
$catSelect = mysqli_query($con,"SELECT * FROM categories WHERE categoryName LIKE '%{$term}%'");
$row1 = mysqli_fetch_row($catSelect);
$subCatSelect = mysqli_query($con,"SELECT * FROM sub_categories WHERE categoryName LIKE '%{$term}%' OR parentCatID = '%{$row1[0]}%'");
$row2 = mysqli_fetch_row($subcatSelect);
$productSelect = mysqli_query($con,"SELECT * FROM products WHERE short_description LIKE '%{$term}%' OR long_description LIKE '%{$term}%' OR subCatID = '%{$row2[0]}%' OR catID = '%{$row1[0]}%'");
私の最終的な試みはこのようになります
mysqli_query($con,"SELECT * FROM products INNER JOIN categories ON products.catID = categories.categoryID WHERE categories.categoryName LIKE '%{$term}%'") or die(mysqli_error());
誰かが私が使用する必要がある SQL クエリを手伝ってくれませんか?