Скрипт поиска в mysql базе, Duke, 23-Ноя-02, 20:57 [смотреть все]В программировании 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). Подскажите пожалуйста.
|
- RE: Скрипт поиска в mysql базе, Robert, 00:21 , 24-Ноя-02 (1)
>В программировании 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
- RE: Скрипт поиска в mysql базе, Duke, 01:30 , 24-Ноя-02 (2)
>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 '') тогда скрипт вообще не ищет. А надо чтобы искал. Можно сформулировать вопрос так: Как дать "понять" базе, что если какой-либо параметр не задан, то выбирать информацию из таблицы игнорирую его, но не игнорируя заданные?
- RE: Скрипт поиска в mysql базе, J, 12:52 , 25-Ноя-02 (3)
>>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
|