В программировании perl я очень далекий человек. Максимум, что приходилось делать - заточка и настройка гостевых, форумов, голосований и т.п.
Тут приспичило написать скриптик который вынимал бы из mysql таблицы только те строки которые удовлетворяли бы параметрам запроса по нескольким параметрам этой строки. Т.е. таблица 15 колонок - параметры радиоэлементов. Пользователь задает из 15 только 3 (например) - диапазон емкостей, пробивное U и массу искомого кондёра, и скрипт выдает ему строки из бызы удовлетворяющие его запросу.Как искать по одному параметру я разобрался :)
$sth = $dbh->query("SELECT * FROM condenser WHERE nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max");
А вот как искать по нескольким параметрам, причем так чтоб не обязатьльно по вем возможным (в моем случае 15).
Подскажите пожалуйста.
>В программировании perl я очень далекий человек. Максимум, что приходилось делать -
>заточка и настройка гостевых, форумов, голосований и т.п.
>Тут приспичило написать скриптик который вынимал бы из mysql таблицы только те
>строки которые удовлетворяли бы параметрам запроса по нескольким параметрам этой строки.
>Т.е. таблица 15 колонок - параметры радиоэлементов. Пользователь задает из 15
>только 3 (например) - диапазон емкостей, пробивное U и массу искомого
>кондёра, и скрипт выдает ему строки из бызы удовлетворяющие его запросу.
>
>
>Как искать по одному параметру я разобрался :)
>
>$sth = $dbh->query("SELECT * FROM condenser WHERE nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max");
>
>А вот как искать по нескольким параметрам, причем так чтоб не обязатьльно
>по вем возможным (в моем случае 15).
>Подскажите пожалуйста.
nu tak i pishi dalshe :
$sth = $dbh->query("SELECT * FROM condenser WHERE nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max AND param1=$value1 and param2<>$value2 ");
i tak daleee
>nu tak i pishi dalshe :
>$sth = $dbh->query("SELECT * FROM condenser WHERE nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max AND param1=$value1 and param2<>$value2 ");
>i tak daleeeНет, это не подходит.
При предложенном варианте скрипт ищет только если заданы все параметры для поиска.
Если один из параметров не задать (т.е. $nom_volt eq '') тогда скрипт вообще не ищет. А надо чтобы искал.Можно сформулировать вопрос так:
Как дать "понять" базе, что если какой-либо параметр не задан, то выбирать информацию из таблицы игнорирую его, но не игнорируя заданные?
>>nu tak i pishi dalshe :
>>$sth = $dbh->query("SELECT * FROM condenser WHERE nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max AND param1=$value1 and param2<>$value2 ");
>>i tak daleee
>
>Нет, это не подходит.
>При предложенном варианте скрипт ищет только если заданы все параметры для поиска.
>
>Если один из параметров не задать (т.е. $nom_volt eq '') тогда скрипт
>вообще не ищет. А надо чтобы искал.
>
>Можно сформулировать вопрос так:
>Как дать "понять" базе, что если какой-либо параметр не задан, то выбирать
>информацию из таблицы игнорирую его, но не игнорируя заданные?
а перл вам на что тогда?
кстати, в mysql есть оператор between(это к nom_emk_min>=$nom_emk_min AND nom_emk_max<=$nom_emk_max), что лучше отимизируется самим mysql