2009-09-30 2 views
0

мне нужно сделать выбор, что выбрать только ABV = «да» и другие фильтры, как:MySql Выберите проблему

SELECT * 
FROM `business` 
WHERE `category` LIKE ('$_GET[search]%') 
OR `location` LIKE ('$_GET[search]%') 
OR `name` LIKE ('$_GET[search]%') 
OR `address` LIKE ('$_GET[search]%') 
AND `apv`='yes' 

Это не работает, если я ставлю все это и не возвращает ничего, с другой стороны, если я ставлю или возвращает в том числе APV отличается от «да»

Мне нужно, чтобы выбрать его:

SELECT * 
FROM `business` 
WHERE `category` LIKE ('$_GET[search]%') 
OR `location` LIKE ('$_GET[search]%') 
OR `name` LIKE ('$_GET[search]%') 
OR `address` LIKE ('$_GET[search]%') 

Но только с APV = «да»

+3

Непосредственно связано с вопросом, но будьте осторожны с уязвимостями SQL-инъекций. Динамический SQL в этом вопросе имеет большую дыру в безопасности. – Asaph

ответ

2

Попробуйте

SELECT * 
FROM `business` 
WHERE (
`category` LIKE ('$_GET[search]%') 
OR `location` LIKE ('$_GET[search]%') 
OR `name` LIKE ('$_GET[search]%') 
OR `address` LIKE ('$_GET[search]%') 
) 
AND `apv`='yes' 
2

ли вы попробовать положить скобки вокруг или оговорок?

SELECT * 
    FROM `business` 
    WHERE (
    `category` LIKE ('$_GET[search]%') 
    OR `location` LIKE ('$_GET[search]%') 
    OR `name` LIKE ('$_GET[search]%') 
    OR `address` LIKE ('$_GET[search]%') 
    ) 
    AND `apv`='yes' 
Смежные вопросы