Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
03 Декабря 2024, 22:02:52


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: как сделать сложный mysql запрос  (Прочитано 21405 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« : 31 Мая 2008, 16:01:06 »

в общем я так понял что для сборки динамического сложного запроса надо собрать сначала строку которая будет вставлена после слова where

проверяем длину переменных затем собираем часть строки с одной переменной
если такая не поступила то зануляем ее чтоб не мешалась
с другими переменными тоже составляем часть строки по аналогии
 
if (length($calling) > 3) {$s1="CALLING_DN="."%"."$calling"."%"}  else {$s1=""};
if (length($called) > 3) {$s2="and "."CALLED_DN="."%"."$called"."%"}  else {$s2=""};
if (length($begindate) > 8 ) {$s3="and "."DATE>="."$begindate"}  else {$s3=""};
if (length($enddate) >  8 ) {$s4="and "."DATE<="."$enddate"}  else {$s4=""};
if (length($begintime) > 8 ) {$s5="and "."TIME>="."$begintime"}  else {$s5=""};
if (length($endtime) > 8 ) {$s6="and "."TIME<="."$endtime"}  else {$s6=""};

собираем строку
$where=$s1.$s2.$s3.$s4.$s5.$s6;
проверяем что у нас собралось
print $where;

выполняем запрос к базе
my $query = "SELECT 1DATE, 1TIME, CALLING_DN, CALLED_DN, RELEASE_ from observ WHERE \"$where\" ";
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM