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


Публикации All_ex74

136 публикаций создано All_ex74 (учитываются публикации только с 26-Апрель 23)



#27740 Кэшируются ли вычисления в КБ?

Отправлено от All_ex74 в 08 Апрель 2015 - 15:44 in Как это сделать

Как такое может быть? (хотя в КБ всякое может быть)

Из 6 запросов на обновление в т. Участники срабатывает только первые 5-ть, а шестое НИКАК!

т. Участники

?зображение


т. Семёрки

?зображение

Выключил все вычисления, используется только это - настроено на изменение поля М-7 таблицы Семёрки:

// если c 1 по 3 поле заполнено...
if (($line['М-1'] !== "") && (($line['М-2'] !== "") || ($line['М-2'] == "")) && (($line['М-3'] !== "") || ($line['М-3'] == "")) && ($line['М-4'] == "") && ($line['М-5'] == "") && ($line['М-6'] == "") && ($line['М-7'] == "")) {
$line['Free'] = 4; // ...ставим флаг - 4

// если c 1 по 4 поле заполнено...
} elseif (($line['М-1'] !== "") && (($line['М-2'] !== "") || ($line['М-2'] == "")) && (($line['М-3'] !== "") || ($line['М-3'] == "")) && ($line['М-4'] !== "") && ($line['М-5'] == "") && ($line['М-6'] == "") && ($line['М-7'] == "")) {
$line['Free'] = 5; // ...ставим флаг - 5

// если c 1 по 5 поле заполнено...
} elseif (($line['М-1'] !== "") && (($line['М-2'] !== "") || ($line['М-2'] == "")) && (($line['М-3'] !== "") || ($line['М-3'] == "")) && ($line['М-4'] !== "") && ($line['М-5'] !== "") && ($line['М-6'] == "") && ($line['М-7'] == "")) {
$line['Free'] = 6; //...ставим флаг - 6

// если c 1 по 6 поле заполнено...
} elseif (($line['М-1'] !== "") && (($line['М-2'] !== "") || ($line['М-2'] == "")) && (($line['М-3'] !== "") || ($line['М-3'] == "")) && ($line['М-4'] !== "") && ($line['М-5'] !== "") && ($line['М-6'] !== "") && ($line['М-7'] == "")) {
$line['Free'] = 7;

// если и 7-е поле заполняется...
} elseif (($line['М-1'] !== "") && (($line['М-2'] !== "") || ($line['М-2'] == "")) && (($line['М-3'] !== "") || ($line['М-3'] == "")) && ($line['М-4'] !== "") && ($line['М-5'] !== "") && ($line['М-6'] !== "") && ($line['М-7'] !== "")) {
if ($line['М-7']) { //...выполняем

// Делим  матрицу (создаём две строки из одной, используя её поля)
$m_l['Тип программы'] = $line['Тип программы'];
$m_l['М-1'] = $line['М-2'];
$m_l['М-2'] = $line['М-4'];
$m_l['М-3'] = $line['М-5'];
$m_l_id = insert_query($m_l,'Семёрки');

$m_r['Тип программы'] = $line['Тип программы'];
$m_r['М-1'] = $line['М-3'];
$m_r['М-2'] = $line['М-6'];
$m_r['М-3'] = $line['М-7'];
$m_r_id = insert_query($m_r,'Семёрки');

data_delete(320, EVENTS_ENABLE, "`id`=", $line['ID']); // затем удаляем поделившуюся строку...

$gr1 = data_select_array(320, "`status`=0 AND `id`=",$m_l_id);

// первые три запроса на обновление в т. Участники
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 1, "f4930" => "", "f5020" => $m_l_id), "f1470='", $gr1['f4570'],"'");
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 2, "f4930" => "", "f5020" => $m_l_id), "f1470='", $gr1['f4580'],"'");
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 3, "f4930" => "", "f5020" => $m_l_id), "f1470='", $gr1['f4590'],"'");

$gr2 = data_select_array(320, "`status`=0 AND `id`=",$m_r_id);

// следующие три запроса...
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 1, "f4930" => "", "f5020" => $m_r_id), "f1470='", $gr2['f4570'],"'");
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 2, "f4930" => "", "f5020" => $m_r_id), "f1470='", $gr2['f4580'],"'");
data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 3, "f4930" => "", "f5020" => $m_r_id), "f1470='", $gr2['f4590'],"'"); // <<<<<<<<<<  вот этот запрос не обновляет данные...!!!
}
}


ТЫСЯЧУ РАЗ проверял всё - нет ошибок! Но последний запрос на обновление (data_update(42, EVENTS_ENABLE, array("f4320" => 2, "f4730" => 3, "f4930" => "", "f5020" => $m_r_id), "f1470='", $gr2['f4590'],"'") не обновляет данные в таблице Участники...



#27640 Логи

Отправлено от All_ex74 в 26 Март 2015 - 07:16 in Как это сделать

Здравствуйте.
Web версия КБ на хостинге. В каталоге /temp скапливается огромное количество логов с такими названиями - sql_log_2015-.........txt
Все логи в настройках отключены, но логирование продолжается...

Как предотвратить такое логирование и с чем это связано?



#27027 Напоминание показывается только единожды

Отправлено от All_ex74 в 09 Февраль 2015 - 12:12 in Как это сделать

Создана внешняя форма.




				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		

			
	<!--Begin Msg Number 26977-->
<div class=

#26977 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 02 Февраль 2015 - 11:12 in Как это сделать

maksn,
Вы мне очень помогли, реализовав данный подход передачи данных в КБ с внешних скриптов. Заставили по новому взглянуть на эту интересную и гибкую CRM.
Вдохнули, наконец, жизнь в мой проект, который заждался подобного блестящего решения, упершись в деструктивную дилемму!



#26963 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 01 Февраль 2015 - 15:02 in Как это сделать

Просмотр сообщенияmaksn (01 Февраль 2015 - 14:36) писал:

Хм...Смотрю, Вы уже давно пытаетесь решить этот вопрос.
Если хотите, могу объяснить как это сделать легко и просто. Дайте свой email ( или можете написать мне из формы по ссылке в подписи )
Расскажу подробно, с примерами. Здесь не очень удобно. Трудно уместить в посты форума
maksn

Пишите, буду рад помощи: abc@yagool.ru



#26961 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 01 Февраль 2015 - 14:09 in Как это сделать

Здравствуйте, CbCoder


Возвращаюсь к данной теме снова. Не выходит никак обратиться к КБ из внешнего PHP скрипта (лежащего на том же сервере, под тем же доменом), для запуска нужных мне вычислений. Пробовал создать форму на нужное поле с данным вычислением. Но оказалось, что после её создания, приходится вручную генерировать хэш-ссылку. В итоге можно изменять только конкретные значения одной записи.
В моём случае это не подходит (КБ используется как интерфейс администратора по управлению пользователями и вход в него совершается довольно редко).

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

Если же обычным запросом к базе (не из КБ вычислением) в нужном поле поменять значение записи, то вычисление конечно не сработает, хотя запись обновиться

Но ведь форма при отправке как то запускает цикл обработки вычислений??..

Никак не могу преодолеть этот "порочный круг", подскажите пожалуйста выход. Может всё не так "нерешимо", как кажется. Работаю над большим проектом, а сроки уже поджимают...
Спасибо!



#26911 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 20 Январь 2015 - 20:10 in Как это сделать

Спасибо, понятно!

Можно наверное ещё так? - создать в нужной таблице КБ скрытое поле и на него создать отдельную Внешнюю форму с вычислением изменения состояния поля с 1 на 0 и обратно. Скрыть её графически в интерфейсе своего сайта и привязать ко всем взаимодействиям с КБ. Там же, в КБ, ориентировать все нужные мне вычисления на изменение состояния этого поля. Таким образом я буду "дергать" обработчик вычислений КБ...



#26906 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 20 Январь 2015 - 17:42 in Как это сделать

Да пока ещё не поставил, только думаю) Я на КБ реализую базу хранения учётных записей и там же предполагаю развернуть логику МЛМ маркетинга - заполнение маркетинговых матриц этих пользователей.

Внешнюю форму я интегрировал в систему регистрации и авторизации на сайте, ею добавляются участники в таблицу КБ. В личном кабинете будут поля с логикой добавления и перезаписи значений в таблицах КБ.

Я вас правильно понял? Вы советуете создавать Внешние формы с необходимыми полями, встраивать в свой интерфейс где нужно, а для изменения-перезаписи значений соответствующих записей КБ задействовать их вычисления?



#26901 Как заставить срабатывать вычисление на внешний запрос к БД

Отправлено от All_ex74 в 20 Январь 2015 - 13:21 in Как это сделать

Есть КБ и есть написанный мной веб-интерфейс, через который пользователи могут вносить записи в таблицы БД КБ, минуя интерфейс КБ, напрямую обращаясь к таблицам MySQL запросами, в нём я использовал код из созданной Внешней формы.

Когда писал интерфейс, задумывал реализовать всю логику на стороне КБ, но вот одна загвоздка, оказалось что вычисления срабатывают только при непосредственном обращении через интерфейс КБ.

Если внешним запросом к БД КБ нельзя заставить вычисления в таблице сработать, то как тогда это проделывает Внешняя форма? Заметил, что вычисления всё таки срабатывают когда данные вносятся в БД КБ через Внешнюю форму.

Вопрос: Какой обработчик "дёргает" Внешняя форма и можно ли использовать этот механизм в моем случае?..



#26879 При создании поля_1, автоматически создаётся поле_2 в той же таблице со значе...

Отправлено от All_ex74 в 17 Январь 2015 - 10:09 in Как это сделать

Здравствуйте, CbCoder. Приятно вновь услышать ваши ответы.
Совершенно верно, имелось ввиду "заполняется". Спасибо за ответ.



#26866 При создании поля_1, автоматически создаётся поле_2 в той же таблице со значе...

Отправлено от All_ex74 в 15 Январь 2015 - 21:58 in Как это сделать

При создании поля_1, автоматически создаётся поле_2 в той же таблице со значением md5(поле_1), Как это сделать?



#24631 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 17:58 in Как это сделать

Просмотр сообщенияCbCoder (20 Июнь 2014 - 17:23) писал:

Да, так верно, если конечно я ничего не упустил. Проверьте уж сами, отладка вам для чего.

Спасибо большое, все работает)!
Вы знаете, а вы ведь великое дело делаете - людей просветляете) За терпение и труд Вам просто обязаны повысить зарплату!



#24629 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 17:17 in Как это сделать

$result = data_select(130, "`status`=0 AND `f5620`='В ожидании'"); // выборка строк с условием из т. Заявки
while ($row = sql_fetch_assoc($result)) // цикл по выбранным из т. Заявки записям
{
		$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720'], " AND `f3530`='Свободна' AND `f6130`='0'"); // выборка из т. Исполнители по условиям. Присваиваем массив значений полей переменной
		if(!$row_isp) {
				data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720']); // присваиваем значение 0 полю Флаг по условиям
				$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
		  }
		  // обновляем поле Исполнитель в т. Заявки при положительном результате
		  data_update(130, array('f4670' => $row_isp['id']), "id=", $row['id']);
		  // обновляем Флаг=1 в т. Исполнители по итогу
		  data_update(240, array('f6130' => 1), "id=", $row_isp['id']);
}
echo 'Done';


Так?.. наверное уж точно)

Но что то не функционирует и выделено красным в общем списке задание в Cron


				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		

			
	<!--Begin Msg Number 24618-->
<div class=

#24618 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 14:17 in Как это сделать

$result = data_select(130, "`status`=0 AND `f5620`='В ожидании'"); // выборка строк с условием из т. Заявки
while ($row = sql_fetch_assoc($result)) // цикл по выбранным из т. Заявки записям
{
	    $row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720'], " AND `f3530`='Свободна' AND `f6130`='0'"); // выборка из т. Исполнители по условиям. Присваиваем массив значений полей переменной
	    if(!$row_isp) {
			    data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720']); // присваиваем значение 0 полю Флаг по условиям
			    $row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['f4790'], " AND `f4690`=", $row['f1720'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
		  }
		  // обновляем поле Исполнитель в т. Заявки при положительном результате
		  data_update(130, $row['f4670'] = $row_isp['id']);
		  // обновляем Флаг=1 в т. Исполнители по итогу
		  data_update(240, array('f6130' => 1), "id=", $row_isp['id']);
}


где f4790 - поле Город, f1720 - поле Тип услуги, а f4670 - поле Исполнитель... надеюсь я вас правильно понял?



#24616 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 13:52 in Как это сделать

поместил это вычисление в Cron и попробовал отработать - выдало ошибку Cron (задание Cron выделено красным в общем списке)

...и после перезагрузки страницы вот это:

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later



#24615 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 13:34 in Как это сделать

$result = data_select(130, "`status`=0 AND `f5620`='В ожидании'"); // выборка строк с условием из т. Заявки
while ($row = sql_fetch_assoc($result)) // цикл по выбранным из т. Заявки записям
{
	$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['Город']['ID'], " AND `f4690`=", $row['Тип услуги']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // выборка из т. Исполнители по условиям. Присваиваем массив значений полей переменной
	if(!$row_isp) {
		data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $row['Город']['ID'], " AND `f4690`=", $row['Тип услуги']['ID']); // присваиваем значение 0 полю Флаг по условиям
		$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $row['Город']['ID'], " AND `f4690`=", $row['Тип услуги']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	  }
	  // обновляем поле Исполнитель в т. Заявки при положительном результате
	  data_update(130, $row['Исполнитель']['ID'] = $row_isp['id']);
	  // обновляем Флаг=1 в т. Исполнители по итогу
	  data_update(240, array('f6130' => 1), "id=", $row_isp['id']);
}


где Город и Тип услуги - поля в т. Заявки, связанные с т. Исполнители
а 130 - id т. Заявки, 240 - id т. Исполнители

вроде всё, правильно сейчас? в единственном сомневаюсь - $row или $result ?



#24613 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 13:24 in Как это сделать

Просмотр сообщенияCbCoder (20 Июнь 2014 - 13:22) писал:

$line то почему не заменили? В кроне нет переменной $line (он не в какой-то определенной таблице выполняется, в отличии от вычислений).

да, пропустил...



#24611 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 12:57 in Как это сделать

Спасибо за подсказки. Сделал как говорили:

$result = data_select(130, "`status`=0 AND `f5620`='В ожидании'"); // выборка строк с условием из т. Заявки
while ($row = sql_fetch_assoc($result)) // цикл по выбранным из т. Заявки записям
{
	$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // выборка из т. Исполнители по условиям. Присваиваем массив значений полей переменной
	if(!$row_isp) {
		data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']); // присваиваем значение 0 полю Флаг по условиям
		$row_isp = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	  }
	  // обновляем поле Исполнитель в т. Заявки при положительном результате
	  data_update(130, $row['Исполнитель']['ID'] = $row_isp['id']);
	  // обновляем Флаг=1 в т. Исполнители по итогу
	  data_update(240, array('f6130' => 1), "id=", $row_isp['id']);
}


проверьте пожалуйста...



#24607 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 12:19 in Как это сделать

Вот так?

$zvka = data_select_array(130, "`status`=0 AND `f5620`='В ожидании'"); // где 130 - id т. Заявки, а f5620 - id поля Статус
foreach ($zvka as $data) // цикл по набору записей
{

                        // а сюда поместить вычисление?

}




#24604 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 11:57 in Как это сделать

Просмотр сообщенияCbCoder (20 Июнь 2014 - 11:34) писал:

Добавьте тогда цикл по таблице Заявки с условием "Статус==В ожидании" и вставьте код вычисления в него...

В него - это в вычисление Cron-а?



#24595 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 11:06 in Как это сделать

Просмотр сообщенияCbCoder (20 Июнь 2014 - 10:30) писал:

Что значит "дёргать"? Для какой цели? Поясняйте сразу всё.

Значит, запускать данное вычисление. Само вычисление настроено на изменение в базе. Cron каждые 30 минут должен пробежаться по записям в т. Заказчики и запустить данное вычисление только в записях с полем Статус ==В ожидании...



#24587 Запуск вычисления с периодом в 30 минут

Отправлено от All_ex74 в 20 Июнь 2014 - 07:04 in Как это сделать

В т. Заявки на поле Статус "висит" вычисление :

if ($line['Статус']=="В ожидании")
{
	$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	if(!$row) {
		data_update(240, array('f6130' => 0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']); // присваиваем значение 0 полю Флаг по условиям
		$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'"); // делаем выборку по условиям и присваиваем массив значений полей переменной
	  }
	  // обновляем поле Исполнитель в т. Заявки при положительном результате
	  $line['Исполнитель']['ID'] = $row['id'];
	  // обновляем Флаг=1 по итогу
	  data_update(240, array('f6130' => 1), "id=", $row['id']);
}


мне необходим "дёргать" Cron-ом все записи в т. Заявки со значением поля Статус == В ожидании с периодом в 30 минут. Подскажите пожалуйста вычисление для Cron-а...



#24586 Детально описание функции send_template

Отправлено от All_ex74 в 20 Июнь 2014 - 06:54 in Разработчикам

Просмотр сообщенияCbCoder (18 Июнь 2014 - 10:04) писал:

Ну так как именно сделали то, перенесли шаблон из Заявок в Исполнителя? Или условие фильтра исправили? Интересно же.



А какой там может быть примерчик то? Банальная отправка письма с любым текстом и темой нужному адресату. Работает полностью аналогично sendsms, и если вы уже работали с ней, то не понимаю в чем сложность с sendmail.

sendmail("Оповещение", "Здравствуйте! Напоминаем вам об истечении срока оплаты.", "client@example.com");

Спасибо, так и думал. Сами говорили, что лучше переспросить лишний раз...)



#24536 Не выполняется условие в вычислении

Отправлено от All_ex74 в 18 Июнь 2014 - 11:37 in Как это сделать

Соглашаюсь, помогли



#24528 Не выполняется условие в вычислении

Отправлено от All_ex74 в 18 Июнь 2014 - 11:06 in Как это сделать

Просмотр сообщенияCbCoder (18 Июнь 2014 - 10:41) писал:

Честно говоря мало что понял в вашей логике. Может просто не будете ничего трогать и оставите как есть? Есть такое золотое правило - "если что-то работает, ради бога не меняйте"...

Что же тут непонятного? Первое вычисление запускает второе - я поменял условие в первом, а именно добавил запрет if($row <>0) на копирование и изменение поля Состояние. Нужно еще, чтоб отменялось присваивание значения полю Связана по услуге... вот тут то весь ступор!