2015-12-03 2 views
0

Я работаю над поисковым запросом, где он получает условия и показывает результаты для него. Я многое выяснил. Однако моя проблема заключается в запросе. Предполагается, что он будет искать категории, и он их воспитывает, но также предполагает, что они вызывают продукты в категориях.Поиск с похожим и левым Присоединиться

Запрос

$query = "SELECT brands.braname, brands.braimg, brands.braid, Products.proid, Products.name FROM brands 
LEFT JOIN Products ON brands.braid = Products.proid 
WHERE braname LIKE $search ORDER BY braid ASC LIMIT 1"; 
+0

Извините, я забыл добавить, что проблема заключается в том, что она не воспитывает продукты для каждой категории в поиске. –

+0

Ваш вопрос трудно понять. Можете ли вы добавить пример вывода, который вы сейчас получаете, и результат, который вы действительно хотите? – trincot

ответ

0

LEFT JOIN Продукты на brands.braid = Products.proid делать "Продукты" имеет косу? Может быть, это будет ON LEFT JOIN ON Продуктов Products.braid = brands.braid

+0

Да продукты, имеет идентификатор бренда –

0

Попробуйте добавить некоторые символы на вашем объект поиска, например:

........ LIKE %".$search."% ORDER BY braid ASC LIMIT 1"; 
0

LIKE требует строки в качестве входных данных, так что вам нужен одиночные кавычки. Как это:

$query = "SELECT brands.braname, brands.braimg, brands.braid, Products.proid, Products.name 
FROM brands LEFT JOIN Products 
ON brands.braid = Products.proid 
WHERE braname LIKE '".$search."' ORDER BY braid ASC LIMIT 1"; 

Кроме того, если вы не используете какие-либо специальные символы, вы можете также остановить заблуждение себя и использовать «=» вместо «LIKE»:

$query = "SELECT brands.braname, brands.braimg, brands.braid, Products.proid, Products.name 
FROM brands LEFT JOIN Products 
ON brands.braid = Products.proid 
WHERE braname = '".$search."' ORDER BY braid ASC LIMIT 1"; 

Если вам нужно проверить столбец braname содержит ли $ поиск, то вам нужно использовать «%» подстановочные который обозначает любое количество любых символов:

$query = "SELECT brands.braname, brands.braimg, brands.braid, Products.proid, Products.name 
FROM brands LEFT JOIN Products 
ON brands.braid = Products.proid 
WHERE braname LIKE '%".$search."%' ORDER BY braid ASC LIMIT 1"; 
0

Попробуйте

$query = "SELECT brands.braname, brands.braimg, brands.braid, Products.proid, Products.name 
      FROM brands 
      LEFT JOIN Products ON brands.braid = Products.proid 
      WHERE braname LIKE %$search% 
      ORDER BY braid ASC 
      LIMIT 1"; 

Вы должны добавить процентную simbols округления условия поиска.

Смежные вопросы