The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Скрипт поиска в mysql базе"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Скрипт поиска в mysql базе"
Сообщение от Duke emailИскать по авторуВ закладки on 23-Ноя-02, 20:57  (MSK)
В программировании 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).
Подскажите пожалуйста.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Скрипт поиска в mysql базе"
Сообщение от Robert emailИскать по авторуВ закладки on 24-Ноя-02, 00:21  (MSK)
>В программировании 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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Скрипт поиска в mysql базе"
Сообщение от Duke emailИскать по авторуВ закладки on 24-Ноя-02, 01:30  (MSK)
>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 '') тогда скрипт вообще не ищет. А надо чтобы искал.

Можно сформулировать вопрос так:
Как дать "понять" базе, что если какой-либо параметр не задан, то выбирать информацию из таблицы игнорирую его, но не игнорируя заданные?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Скрипт поиска в mysql базе"
Сообщение от J Искать по авторуВ закладки on 25-Ноя-02, 12:52  (MSK)
>>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

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру