Надо выполнить SQL запрос и его результаты отправить по почте используя шаблон.
Единственный предполагаемый рабочий вариант - это через вычисляемое поле.
Создал вычисление:
Выполняю запрос, обрабатываю, записываю в $line['Данные']
Сразу отправляю письмо через send_template(), в шаблоне используется $line['Данные']
Но $line['Данные'] в момент отправки пусто, данные в нем появляются после отправки письма и завершения вычисления.
Как динамически сформировать данные и передать их в шаблон?
2
Передать в шаблон письма динамические данные
Автор Anton1, 13 сент. 2023 20:50
Сообщений в теме: 3
#1
Отправлено 13 Сентябрь 2023 - 20:50
#2
Отправлено 15 Сентябрь 2023 - 14:56
Переменная $line будет сохранена в БД только после завершения кода всех вычислений, а send_template берет сразу данные из БД. Поэтому и записывать в вашем случае лучше в БД напрямую:
data_update($table_id, ['f111' => $data], 'id = ', $ID); // 111 - замените на id поля "Данные", в $data - результат вашего запроса
#3
Отправлено 15 Сентябрь 2023 - 15:49
Спасибо работает.
Еще вопрос.
В письме надо отобразить таблицу, в моем случае расписание. Подготавливаю массив:
в шаблоне формирую таблицу:
Код работает, но возможно есть более правильные и изящные решения передачи результатов запроса в шаблон письма, без использования json и html_entity_decode ?
Еще вопрос.
В письме надо отобразить таблицу, в моем случае расписание. Подготавливаю массив:
$data = array(); $sqlQuery = "..."; $res = sql_query($sqlQuery); while($row = sql_fetch_assoc($res)){ $data[] = $row; } data_update($table_id, ['f111' => json_encode($data)], 'id = ', $ID);
в шаблоне формирую таблицу:
{foreach from=html_entity_decode ($Shedule_array)|json_decode:1 item=Shedule_array} ... {/foreach}
Код работает, но возможно есть более правильные и изящные решения передачи результатов запроса в шаблон письма, без использования json и html_entity_decode ?
#4
Отправлено 29 Сентябрь 2023 - 12:16
Anton1 (15 Сентябрь 2023 - 15:49) писал:
Код работает, но возможно есть более правильные и изящные решения передачи результатов запроса в шаблон письма, без использования json и html_entity_decode ?
Если вам надо передать подтаблицу, то в шаблоне письма есть штатные переменные для этого. Если же это сторонняя таблица не связанная никак с текущей, то вероятно более оптимальных вариантов чем у вас в примере вряд ли можно придумать. Разве что я бы на такой же задаче скорее всего записал бы в то же поле сразу HTML (в поле типа с текст включенной опцией html форматирование) и просто вывел бы переменную поля в шаблоне. Но у вашего варианта свои плюсы.
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных