簡體   English   中英

搜索多個類別的產品

[英]Searching products in multiple categories

我具有帶有類別的搜索功能,當您單擊該類別時,將在該類別中進行搜索,但是我想這樣做,以便能夠在多個類別中搜索關鍵字。 這是我的表格:

        <form method="get" action="zoek.php">
            <input type="text" name="producttitle" placeholder="Productnaam">
            <input type="hidden" name="prodgroup" value="<?= (isset($_GET['prodgroup'])) ? $_GET['prodgroup'] : '' ?>">
            <input type=submit class="btn btn-primary" value="Zoek...">
        </form>

這是您單擊類別並搜索單詞的代碼

      <?php
    if (isset($_GET['prodgroup']) && $_GET['prodgroup'] != "" && isset($_GET['producttitle']) && $_GET['producttitle'] != "") {
        $category = $_GET['prodgroup'];
        $prodtit = $_GET['producttitle'];


        $query = $readconn->prepare("
SELECT S.StockItemID, S.StockItemName, S.Photo, S.UnitPrice, S.Photo, S.Brand
FROM stockitems S JOIN stockitemstockgroups SISG ON S.StockItemID = SISG.StockItemID
JOIN stockgroups SG ON SISG.StockGroupID = SG.StockGroupID
WHERE SG.StockGroupID = '" . $category . "'
AND S.StockItemName LIKE '%" . $prodtit . "%'
");

這些是具有其ID的類別:

.--------------.---------------------. | StockGroupID | Col2 | :--------------+---------------------: | 1 | Novelty Items | :--------------+---------------------: | 2 | Clothing | :--------------+---------------------: | 3 | Mugs | :--------------+---------------------: | 4 | T-Shirts | :--------------+---------------------: | 5 | Airline Novelties | :--------------+---------------------: | 6 | Computing Novelties | :--------------+---------------------: | 7 | USB Novelties | :--------------+---------------------: | 8 | Furry Footwear | :--------------+---------------------: | 9 | Toys | :--------------+---------------------: | 10 | Packaging Materials | '--------------'---------------------'

該表包含所有項目,並且您可以看到某些項目可以處於多個類別中。

.-----------------------.--------------. | StockItemStockGroupID | StockGroupID | :-----------------------+--------------: | 4 | 1 | :-----------------------+--------------: | 1 | 2 | :-----------------------+--------------: | 2 | 2 | :-----------------------+--------------: | 3 | 3 | :-----------------------+--------------: | 5 | 4 | :-----------------------+--------------: | 6 | 7 | :-----------------------+--------------: | 8 | 7 | :-----------------------+--------------: | 7 | 8 | :-----------------------+--------------: | 9 | 9 | :-----------------------+--------------: | 10 | 2 | '-----------------------'--------------'

這也是另一個具有所有項目名稱的表,因此我可以基於關鍵字進行搜索。 但是我認為我不需要這里。 因此,我嘗試做的是將WHERE語句更改為如下所示的IN:

WHERE SG.StockGroupID IN (SELECT StockGroupID FROM stockitemstockgroups)但是它仍然不包含多個類別。 這是URL

HTTP://localhost/kbs/zoek.php producttitle =比薩餅&prodgroup = 1

雖然我認為應該是這樣的:

HTTP://localhost/kbs/zoek.php producttitle =比薩餅&prodgroup = 1&prodgroup = 2

我認為您應該將查詢的where部分轉換為諸如

WHERE SG.StockGroupID IN (" . $categories . ") ...

其中$ categories應該是使用用戶界面創建的類似“ 1、2、4”的字符串,該界面允許用戶選擇所需的類別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM