Поиск по идентификатору и имени из двух разных таблиц - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу найти товар согласно введенному пользователю ключевое слово . В настоящее время я делаю, взорвав ключевое слово пользователя и используя SQL LIKE.

$keywords = explode(' ', $psearch);//psearch = User keyword
$searchTermKeywords = array();
foreach ($keywords as $word) 
{
  $searchTermKeywords[] = "name  Like '%$word%'";
}
$qry_p = "SELECT * FROM product 
          where ".implode(' AND ', $searchTermKeywords)." 
          && status=1
          ORDER BY RAND() LIMIT 12";  

, но это будет работать только тогда, когда продукт содержит имя, указанное пользователем.


Это моя первая таблица "Продукт"

enter image description here

И это второй по имени "Категория"

enter image description here

Теперь я хочу выполнить действие, например, если пользователь ищет Saree, поэтому должны отображаться все продукты, чей идентификатор категории равен 1 ( означает сари ).

1 Ответ

0 голосов
/ 28 апреля 2018

В вашем случае, Inner Join в вашей таблице товаров и категорий, используя товар. category = category.id и в качестве условия выберите category.name как category_name. Также обновите условие поиска с помощью

foreach ($keywords as $word) { $searchTermKeywords[] = "product.name Like '%$word%' OR category_name Like '%$word%'"; }

Пожалуйста, попробуйте вышеуказанный код и обновите его в соответствии с вашими полями поиска. Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...