у меня есть в бд таблица product где есть столбец brand который содержит : samsung apple google и я знаю , что можно вывести из этой таблицы только samsung, вот так Код (Text): mysqli_query (" SELECT * FROM product WHERE brand ='samsung' ") Но как выводить выборочно например : только apple и samsung или samsung и google или все , я не понимаю как сформировать запрос , если можно пример
Выборочно по чему? Если имеется в виду страница фильтра, то вы берете слаг значения фильтра из адреса, по нему определяете само значение и подставляете его в запрос. Можно и непосредственно значение слага подставлять, но это любительский подход. Например, имеем адрес вроде /brand/samsung, откуда берем второй компонент пути и пихаем его в запрос, предварительно или походу (есть такое понятие как подготовленные запросы) делая защиту от SQL-инъекции.
Эээ... все-таки напишу, как это делается грамотно. По слагу samsung ищете запись в таблице брендов. Если находите такую запись, берете значение бренда (числовой идентификатор), которое и подставляете в финальный запрос. --- Добавлено --- P.S. Естественно, в таблице продуктов должны находиться не слаги или названия брендов, а их числовые идентификаторы. Это основы.
Прямой ответ на ваш вопрос: Код (Text): SELECT * FROM product WHERE brand='samsung' OR brand='apple' Однако по уму сделать отдельную таблицу брендов, а в запрос подставлять id-шники брендов, а не строковые названия, как написал miketomilin. Тогда запрос стал бы таким: Код (Text): SELECT * FROM product WHERE brand_id=? OR brand_id=?
Кстати, я только сейчас заметил, что ТС говорил про фильтр с двумя значениями одновременно. --- Добавлено --- В принципе мой вариант тоже будет работать, если для фильтра использовать не таблицу брендов, а таблицу с условиями, в том числе и сложными, для финального запроса. Однако такое практикуется, только когда число комбинаций (разных условий) небольшое. В противном случае используется т.н. конструктор запросов/условий. Для фильтрации с выбором одновременно по нескольким значениям одного признака часто используется не OR, а IN(...). --- Добавлено --- P.S. Для выбора ВСЕГО обычно запрос не усложняется до использования в условии полного множества значений признака, а наоборот упрощается: условие либо полностью убирается, либо упрощается до `brand`!=СЛУЖЕБНОЕ_ЗНАЧЕНИЕ_ИДЕНТИФИКАТОРА.