как выбрать либо определенное либо все значения одного поля

RigVan

Постоянный член клуба
как выбрать либо определенное либо все значения одного поля

есть вопрос:

из HTML-формы посылаются данные с названиями товаров. Как составить запрос к MySQL так, чтобы если в HTML-форме выбран пункт "не имеет значения", то есть не выбран не один вид товаров, то что бы из базы доставались ВСЕ значения товаров?

например запрс:

$query = "select from katalog
where tovar = '$tovar' ";

выбирет определенный товар, но иногда необходимо, чтобы, если товар не определен, то выбирались ВСЕ товары....
 

Фанат

oncle terrible
Команда форума
скажи, ты понимаешь, что SQL запрс - это всего лишь текстовая строка?
которую ты можешь сформировать скриптом как угодно?
 

krafty

new Exception
в списке у варианта "не имеет значения" делаешь value=all. Потом
PHP:
if ($_REQUEST['tovar']=='all')
  mysql_query("SELECT * FROM katalog")
else
    mysql_query("SELECT * FROM katalog WHERE tovar = $_REQUEST['tovar']")
 

RigVan

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

Фанат

oncle terrible
Команда форума
можно создавать разные запросы.
можно собирать один запрос из кусочков.
 

krafty

new Exception
RigVan
нет, ты не понимаешь. здесь только два варианта: либо все выбираем (значение all) либо конкретный товар (по id или по названию)
 

Фанат

oncle terrible
Команда форума
krafty, а тебе не кажется, что это ты не понимаешь?
 

RigVan

Постоянный член клуба
Не ужели все так плохо.... у меня 39 полей, из них в данном запросе используются только 15, поэтому начсколько я понимаю "*" в запросе "SELECT * FROM katalog" использовать не получится. Также исрользуются 15 переменных, для каждой из которых долежн быть предусмотрен либо вывод заранее определенных значенийзначений, либо всех значений, если не выбранно не одно значение.... Может быть есть какой-нибудь способ составить запрос с помощью конкатенции...
 

Фанат

oncle terrible
Команда форума
как же тяжело-то...
скажи, ты можешь написать пхп скрипт, который взависимости от условия добавляет к одной строке другую?

ответь строго на поставленный вопрос: МОЖЕШЬ или НЕТ?
 

RigVan

Постоянный член клуба
Фанат я просто не совсем понял твой вариант. Он позволяет обойтись без множества запросов?
 

krafty

new Exception
ага... я действительно не понял условия! извините. тогда наверно implode тебе в помощь
 

Фанат

oncle terrible
Команда форума
RigVan
у тебя две проблемы.
1. ты не знаешь, что тебе нужно.
2. не знаешь, как это сделать.

попробуй сначала решить первую.
представь, что у тебя не 15, а ДВА параметра.
напиши все возможные запросы для двух параметров.

имея их перед глазами, будет гораздо проще искать решение.
 

RigVan

Постоянный член клуба
Фанат отвечая на твой строго поставленный вопрос, твердо говорю: Да! :) Блин может у меня уже ступор (3-и сутки пишу прогу) но не пойму как мне поможет твой вариант? если можно поясни...
 

Фанат

oncle terrible
Команда форума
вариант поможет ОЧЕНЬ просто.
если у тебя 15 параметров, то ты в скрипте делаешь 15 условий, которые тебе формируют запрос способом, про который ты только что написал "МОГУ".
 

RigVan

Постоянный член клуба
Фанат
Ты прав ровно наполовину, поскольку я знаю, что хочу сделать (возможно я неясно выразил суть проблемы):
Есть форма
<select name=tovar>
<option value="" selected>Не имеет значения</option>
<option value="tovar1">tovar 1</option>
<option value="tovar2">tovar 2</option>
<option value="tovar3">tovar 3</option>
</select>

есть скрипт который её "ловит":

$query = "select from katalog
where tovar = '$tovar' ";

Нужно что бы при выборе опции "Не имеет значения", в форме скрипт выводил все товары.

А вот по поводу второго ты действительно прав, я не знаю как это зделать....
 

Фанат

oncle terrible
Команда форума
такоео ощущение,что я разговариваю со слепоглухим.
скажи, ты читал вот это?
попробуй сначала решить первую.
представь, что у тебя не 15, а 2 параметра.
напиши все возможные запросы для двух параметров.
какое из слов тебе непонятно?

Нужно что бы при выборе опции "Не имеет значения", в форме скрипт выводил все товары
"все товары" выводит НЕ СКРИПТ!!!
все товары выводит ЗАПРОС.
то есть, твоя конечная цель - ЗАПРОС.
то есть, прежде, чем писать хоть строчку скрипта, ты должен себе представлять, что ты хочешь получить.
ЗАПРОС.
я доступно выражаюсь?

-~{}~ 30.10.05 20:06:

вижу, два параметра для тебя - это слишком сложно.
давай попроще.
если у тебя ОДИН параметр, то сколько будет вариантов запросов?
ты можешь написать все запросы, если товар - ОДИН?
 

krafty

new Exception
тема звучит: как выбрать либо определенное либо все значения одного поля.
т.е. вопрос о сложной фильтрации по нескольким полям таблицы и формирования соответствующего запроса, где нужно проверять для каждого поля выбрано значение или нет,не стоит.
RigVan
может я опять неправильно понял. можешь рассказать о структуре твоей таблицы.
 

Фанат

oncle terrible
Команда форума
балин, да не лезь ты.

RigVan
не надо никакой структуры.
с запросами определись.
увидь ВПЕРВЫЕ В ЖИЗНИ то, что ты хочешь получить от своего пхп скрипта.
 

krafty

new Exception
Фанат
из огромнейшего и глубочайшего уважения к вашей персоне я отваливаю
 
Сверху