Выбор данных из БД на основе ввода пользователем

Обычно я очень хорошо извлекаю данные из БД, но я пришел к выводу.

У меня есть панель поиска, которая направляет пользователя на другую страницу, чтобы показать продукты, которые они искали на первой странице. Мой сайт позволяет пользователям искать вынос в своей области. На второй странице у меня есть раскрывающийся список, это используется для поиска по различным категориям продуктов для этой области.

Моя проблема заключается в том, что у меня есть почти 30 категорий продуктов питания, не во всех областях есть суставы на вынос для каждой из 30 категорий, я стараюсь показывать только категории продуктов, которые есть в этой области, а не показывать другие. Мой запрос пока показывает все 30 категорий, независимо от количества категорий, которые есть на самом деле, и когда я устанавливаю WHERE для любого другого, кроме restaurant_id, категории больше не отображаются.

Я попробовал Inner присоединиться к 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 ."';";