私は通常、DBからデータを取得するのにはとても良いですが、私はまだ立ち止まっています。ユーザ入力に基づいてDBからデータを選択
私は最初のページで検索した商品を別のページに表示する検索バーを持っています。私のウェブサイトでは、ユーザーはその地域のテイクアウトを検索することができます。 2番目のページにはドロップダウンリストがあり、これはそのエリアのさまざまな食品カテゴリを検索するために使用されます。
私の問題は、30種類の食べ物のカテゴリがあります。すべての地域に30種類の食べ物の種類があるわけではなく、他の食べ物のカテゴリのみを表示しようとしています。これまでのクエリでは、実際にカテゴリの数に関係なく30のカテゴリがすべて表示され、WHEREをWHERE以外に設定するとカテゴリは表示されなくなりました。
私は、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";
私はPコードは、ユーザーの入力コードに等しいテーブルからすべてを選択しようとしています。各レストランが配信するポストコードはDelivery_Pcode.Pcodeに保存され、$ searchqはページの先頭に入力されたポストコード$ _post値として定義されます。
私が試してみました: WHERE RESTAURANT_NAME = $ rest_name(また、定義された) WHERE RESTAURANT_NAME = $ rest_nameとRestaurant_id = $ rest_id(また、定義された)
私はこの奥深くに考えていた場合、私は知りません非常に簡単な方法(私はそれを行う傾向がある)がある、または私は、クエリを削除し、再度開始する必要があります...アドバイスやガイダンスは大歓迎です。
私はクエリが動作することを知っています、それは私が問題を引き起こしているクエリだけです。
「私は、クエリが動作します知っています"それはどういう意味ですか?また、試したクエリの出力は何ですか? – dimlucas
$ searchq変数をサニタイズしないとクエリがSQLインジェクションにオープンしているので、クエリにPDOを使用し、変数をパラメータに渡してプレースホルダ(:searchq)を使用する必要があります。 –
@dimlucas私は* FROM ....結果靴を選択したときと同様にクエリが機能することを意味します。問題はありません。私はちょうど私がそれをしたいことをするためにクエリを取得することはできません – user6362696