簡體   English   中英

根據用戶輸入從數據庫中選擇數據

[英]Select data from DB based on user input

我通常非常擅長從數據庫中檢索數據,但是我已經停滯不前了。

我有一個搜索欄,可將用戶定向到另一頁,以在第一頁上顯示他們搜索的產品。 我的網站允許用戶搜索他們所在地區的外賣店。 在第二頁上,我有一個下拉列表,該列表用於搜索該區域的不同食物類別。

我的問題是我幾乎有30種食品類別,並不是所有區域都為30種食品類別中的每一個提供外賣,我試圖僅顯示該區域具有的食品類別,而不顯示其他類別。 到目前為止,我的查詢顯示了所有30個類別,無論該區域實際有多少個類別,並且當我將WHERE設置為restaurant_id以外的任何類別時,該類別都不再顯示。

我嘗試使用內部聯接2/3表來使此查詢有效,但沒有任何樂趣。

Delivery_Pcode Tbl
1   Del_code_id
2   Restaurant_ID
3   Pcode   
4   Del_Price


Rest_Category tbl
1   CategoryID
2   Cuisine_category
3   Category_img

Rest_Details Tel
1   Resturant_ID
2   Resturant_name
3   City_name
4   Cat_ID

詢問

 $get_cats = "SELECT * FROM Rest_Category
                    INNER JOIN Rest_Details
                    ON Rest_Category.CategoryID = Rest_Details.Cat_ID
                    INNER JOIN Delivery_Pcode
                    ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_ID
                    WHERE Delivery_Pcode.Pcode= $searchq";

我試圖從表中選擇所有Pcode等於用戶輸入代碼的表。 每個餐廳交付的郵政編碼都保存在Delivery_Pcode.Pcode中,$ searchq在頁面頂部定義為輸入的郵政編碼$ _post值。

我嘗試過:WHERE Restaurant_name = $ rest_name(也已定義)WHERE Restaurant_name = $ rest_name和Restaurant_id = $ rest_id(也已定義)

我不知道我是否想深入了解這個問題,並且有一個非常簡單的方法(我傾向於這樣做),或者我需要刪除查詢並重新開始...,建議或指導很多贊賞。

我知道查詢有效,因為它填充的只是導致我出現問題的查詢。

您可以嘗試添加引號

"SELECT * FROM Rest_Category
                INNER JOIN Rest_Details
                ON Rest_Category.CategoryID = Rest_Details.Cat_ID
                INNER JOIN Delivery_Pcode
                ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_ID
                WHERE Delivery_Pcode.Pcode= '$searchq'";

或(在適當的輸入消毒之前)

  "SELECT * FROM Rest_Category
                INNER JOIN Rest_Details
                ON Rest_Category.CategoryID = Rest_Details.Cat_ID
                INNER JOIN Delivery_Pcode
                ON Delivery_Pcode.Restaurant_ID = Rest_Details.Resturant_ID
                WHERE Delivery_Pcode.Pcode= '" . $searchq ."';";

暫無
暫無

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

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