Перейти к содержимому


Создание фильтра


Сообщений в теме: 5

#1 adminTF

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 20 Январь 2014 - 10:53

Добрый день, уважаемые программисты.
Ни как не могу придумать фильтр который бы работал по следующей схеме:
Существует фильтр - `Желаемая дата`!='0000-00-00 00:00:00' and `Лог рассылки` not like '%Приглашение на встречу свадьба (клиент один)%' and `Имя супруги(а), девушки(парня)`='' and `Пригласить`='Свадьба' and `Имя клиента`!='' and left(`Желаемая дата`,10)>=curdate() , как только рассылка проходит в логе появляется запись "приглашение на встречу свадьба (клиент один), 29.08.2013 11:44:06 - SENDED" и на этом запись исчезает из фильтра, рассылка прошла. Но бываю случаи, когда рассылка не проходит по причине

SMTP Error: Could not connect to SMTP host.

, тогда в запись лога идет "приглашение на встречу свадьба (клиент один), 29.08.2013 11:44:06 - FAIL" и запись из фильтра исчезает, а рассылка не проходит.
Вопрос, как подкорректировать фильтр, чтобы в случае появлении записи FAIL, фильтр продолжал работать, до тех пор пока не появится SENDED.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Январь 2014 - 14:42

Добавьте в фильтр условие "или `Лог рассылки` содержит 'FAIL'" :

`Желаемая дата`!='0000-00-00 00:00:00' and (`Лог рассылки` not like '%Приглашение на встречу свадьба (клиент один)%' or `Лог рассылки` like '%FAIL%') and `Имя супруги(а), девушки(парня)`='' and `Пригласить`='Свадьба' and `Имя клиента`!='' and left(`Желаемая дата`,10)>=curdate()

#3 adminTF

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 21 Январь 2014 - 10:24

В этом случае фильтр действительно работает и продолжает работать бесконечно, а следовательно и рассылка идет бесконечно. Мне нужно чтобы после появления лога
приглашение на встречу свадьба (клиент один), 21.01.2014 11:13:06 - FAIL
фильтр продолжил работу, до появления лога
Приглашение на встречу свадьба (клиент один), 21.01.2014 11:15:03 - SENDED
после чего фильтр должен перестать работать с этой записью в таблице.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Январь 2014 - 11:05

Ну так добавьте еще и исключение на SENDED, в чем проблема то. Общий принцип уже должен быть ясен из моего поста выше.

#5 adminTF

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 21 Январь 2014 - 11:38

добавил по вашей инструкции запись
`Желаемая дата`!='0000-00-00 00:00:00' and (`Лог рассылки` not like '%Приглашение на встречу свадьба (клиент один)%' or `Лог рассылки` like '%FAIL%' or `Лог рассылки` not like '%SENDED%') and `Имя супруги(а), девушки(парня)`='' and `Пригласить`='Свадьба' and `Имя клиента`!='' and left(`Желаемая дата`,10)>=curdate()
Фильтр продолжает работать по этой записи.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Январь 2014 - 12:13

Там не or должен быть, а and, т.к. условия содержания FAIL и отсутствия SENDED должны выполнятся одновременно для одного и того же поля. И разумеется, оно должно быть за кавычками, т.к. они для "or" между условиями. Включите логику, форум ведь не для того чтобы за вас все полностью написали и продумали.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных