The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Скрипт поиска в 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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