Клей и Mysql запросы

freel

Новичок
Клей и Mysql запросы

Всем доброго!
возникла задача "собирать" запрос в замисимости от характера входных данных из фрмы.
дано форму поиска, которая содреджит до 10 параметров критериев, по выбору которых передаются &id определённых объектов,
другими свами нужно генерить заппрос обращения к БД ибо он может выглядеть так
" SELECT * FROM `$table` ";
а может и так
" SELECT * FROM `$table` WHERE `$table`.`id_name_obj` = $id_name_obj AND ...... ";


Пока решил реализовать задачу таким образом:
PHP:
 $query_base = " SELECT * FROM `$table` ";
 $query_find_name = " WHERE `$table`.`id_name_obj` = $id_name_obj ";
   if($id_name_obj != 0 )
   {
     $query_base = $query_base.$query_find_name; 
   }
   $res = $this->exect_query($query_base);
   return $res;
осталось создать массив подзапросов, а так же создать счётчики "был ли использован WHERE и другие ключевые слова"
как по другому не знаю, буду благодарен за вразумительные разъяснения и советы, спасибо.
 

freel

Новичок
Автор оригинала: Mr_Max
А зачем?

$sql = 'SELECT `field` FROM `table` WHERE 1 ';

$sql .= ' AND id="1" ';
итд.
Дабы из этих частей склеивать необходимый запрос, ибо критерии поиска которые были заданы из формы могут быть разными.
 

Фанат

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

freel

Новичок
Автор оригинала: *****
ну так и склеивай.
можешь записывать условия в массив - так ты решишь проблему счетчика. а какие другие ключевые слова?
Повторюсь, форма поиска имеет более 10ти ключевых слов, таких как например, "цвет" "толщина" "размер сисетк" "токопроводность".... пользователь может выбрать один критерий можен несоклько а может и все, т.е. такие ключевые слова как WHERE, AND ... могут использовать много раз или вообще ни разу... пока допёр только создать "заготовки" запросов, и на базе проверок принимать решение, как именно "склеивать запрос"
что с массивами и счётчиками не совсем вразумел, пожалуйста поясните, спасибо.
 

Фанат

oncle terrible
Команда форума
Ну так сделай в своем коде более 10 условий, по которым ты добавляешь элементы в запрос.

Про решение как именно "склеивать запрос" - подробнее, с примерами. что за бред про WHERE, которое используется много раз?
 

fixxxer

К.О.
Партнер клуба
а я для этого blitz использую :)
PHP:
define('SQL_GET_AAA', 'SELECT * FROM {{ t("AAA") }}
  WHERE aaa_id = {{ i(id) }} 
  {{ IF parent_id }} AND parent_id = {{ i(parent_id) }} {{ END }}
  {{ UNLESS parent_id }} AND parent_id IS NULL {{ END }}
  {{ IF status }} AND status = {{ s(status) }} {{ END }}
  ORDER BY updated {{ UNLESS orderAsc }} DESC {{ END }}
  LIMIT {{ lim(limit) }} OFFSET {{ lim(offset) }}
');
 

freel

Новичок
Автор оригинала: fixxxer
а я для этого blitz использую :)
PHP:
define('SQL_GET_AAA', 'SELECT * FROM {{ t("AAA") }}
  WHERE aaa_id = {{ i(id) }} 
  {{ IF parent_id }} AND parent_id = {{ i(parent_id) }} {{ END }}
  {{ UNLESS parent_id }} AND parent_id IS NULL {{ END }}
  {{ IF status }} AND status = {{ s(status) }} {{ END }}
  ORDER BY updated {{ UNLESS orderAsc }} DESC {{ END }}
  LIMIT {{ lim(limit) }} OFFSET {{ lim(offset) }}
');
Ооооо это что-то новенькое, спасибо!!!
 

freel

Новичок
Автор оригинала: *****
но сначала разгреби кашу у себя в голове.
уважаемый безумец вы оскорбительными и дерскими постами надеетесь поднять себе рейтинг!?
 
Сверху