Здравствуйте, подскажите пожалуйста. Вот у меня есть webform которую заполняют определенные роли(пользователи). Исходя из этих данных пользователи могут формировать отчёт в PDF, а сам отчёт - это некие таблицы, и значения в этих таблицах формируются (рассчитываются) исходят из значений результатов webform. И так как некоторые значения в этих таблицах(отчётах) рандомные, то стоит задача, сохранять эти значения. Что бы при последующем обращении к отчёту все значения были те же, что и первый раз.
Собственно сама логика такая: есть два пункта меню "Новая поверка" - это где webform и "Мои поверки" - это где список отправленных webform пользователя. Пользователь зашел в "Новую поверку" заполнил форму, нажал кнопку отправить, у него посчитались все значения для всех таблиц которые в отчёте PDF и записались в БД. Затем он зашел в "Мои поверки" нашел свою отправку, нажал по ссылке "сформировать PDF" и в самом уже PDF получил посчитанные значения из БД. И они собственно вставились в нужные места
сам PDF - это модуль,собственно что делает модуль - это только создает страницу и на этой странице открывает PDF файл
<?php
function genpdf_menu() {
$items = array();
$items['pdfgen'] = array(
'title' => 'Заголовок страницы',
'page callback' => 'functpdf',
'type' => MENU_NORMAL_ITEM,
'access callback' => TRUE,
);
return $items;
}
?>
Изначально было по другому - так как пункт меню "Мои поверки" это представление(Views) я в нём делал поле "Отправленные формы: Ссылка Прочитать" и называл эту ссылку - "Сформировать PDF", по нажатию на эту ссылку переходил на страницу (webform-submission.tpl.php) где из массива $renderable получил отправленные поля webform и записывал их в сессию, а потом в этом файле создавал ссылку
<a href="/pdfgen" target="_blank">Создать отчёт PDF</a>
и потом из сессии, на странице модуля (pdfgen) их получал и вставлял в нужные места, и считал. Но проблема в том, что это нигде не сохраняется, и при повторном обращении некоторые значения были уже другие. Из за рандома.
Вот сам вопрос в том: что база данных это то ли решение? Либо можно как то по другому?
А если база данных то подскажите пожалуйста, вот допустим пользователь заполнил webform в пункте "Новая поверка", после нажатия на кнопку отправить, посчитались все значения нужные для отчёта, и записались в БД. Пользователь зашел в "Мои поверки" нашел свою отправленную webform и как вот теперь сформировать PDF? Добавить такую же ссылку как и раньше, которая будет вести на страницу модуля (PDF) ? А как потом в модуле получать данных из БД? Соответствующие выбранной отправке.
Были мысли по поводу выборки из базы данных. Но тут есть одна сложность в том что в этом PDF отчёте, 5 таблиц куда должны записываться значения, соответственно нужно 5 таблиц в БД. Допустим, вот пользователь сделал отправку webform, с ID 001, расчёты все записываются в базу данных тоже с ID 001 и как нибудь делать выборку по ID . Подскажите пожалуйста, каким образом можно сделать, или другой вариант какой нибудь выборки из БД соответствующих данных
Заранее благодарен за Ваш ответ!
Комментарии
Неправильный бутерброд...Нельзя так делать - в шаблонах не должно быть логики.
То.
Читайте про ДЖОИНЫ (JOIN) в SQL.
Понял, спасибо большое.