Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

проверка значения в БД MySQL [закрыт]

0

есть такой кусок:

 same = n,MYSQL(Connect connid localhost login pass ast_num)
 same = n,MYSQL(Query resultid ${connid} SELECT shifr FROM main WHERE num=${CALLERID(num)})
 same = n,MYSQL(Fetch fetchid ${resultid} var1)
 same = n,NoOp(${resultid})
 same = n,NoOp(${connid})
 same = n,NoOp(${var1})
 same = n,GotoIf($["${var1}" > 0]?prisv:newab)
 same = n(prisv),Dial(SIP/${var1})
 same = n(newab)...

Необходимо при наличии значения в БД в таблице main в поле shifr, звонить на номер который я получаю из базы со столбца shifr если соответствие по полю num есть. А если нет, то вносить новый, под следующим номером. Условно первый - 1, второй - 2 и т.д.

так вот, если значения в базе не находится то переменная var пустая. Как осуществить проверку? Пытаюсь сделать условие same = n,GotoIf($["${var1}" > 0]?prisv:newab), но оно не прорабатывается. Помогите пожалуйста :-) !!!

удалить переоткрыть спам изменить тег редактировать

спросил 2013-12-09 20:23:54 +0400

mention Gravatar mention flag of Russian Federation
486 43 3 17
http://localhost/

Comments

2

проверяйте длину записи LEN - при пустой записи будет ноль

awsswa ( 2013-12-09 20:47:13 +0400 )редактировать

Спасибо хороший человек, а почему не ответом, а камментом?

mention ( 2013-12-09 23:14:38 +0400 )редактировать

А говорил уже давно сделал! Обманывал?

После всех вызовов MYSQL() нужно делать Disconect ;)

switch ( 2013-12-09 23:29:18 +0400 )редактировать

это да, сделал, но работало криво ))) а тут человек подсказал. да я делаю дисконнект, это же всего-лишь отрезок. попутно вопрос по SQL, а как в базу из * записать дату и время? пробую так: same = n,Set(timetoday=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)})) same = n,MYSQL(Query resultid ${connid} INSERT INTO main (num, shifr, descr,calldate ) VALUES (${CALLERID(num)}, NULL, 1, ${timetoday})) но к сожалению ничего не выходит... в базе поле calldate имеет формат datetime.

mention ( 2013-12-10 02:33:36 +0400 )редактировать

обращаю внимание формат поля calldate - datetime, я понимаю что можно выставить ему формат TIMESTAMP (по правде так и сделал), но интересно можно ли с Asterisk внести его в данный тип поля?

mention ( 2013-12-10 02:39:20 +0400 )редактировать

Можно, но это вопросы по MySQL, а по нему полно инфы в инете. Подставлять дату из астериска нет смысла, делайте поле тип TIMESTAMP и пусть оно само заполняется.

switch ( 2013-12-10 06:37:42 +0400 )редактировать

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-12-09 20:23:54 +0400

Просмотрен: 293 раз

Обновлен: Dec 09 '13

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.