Drupal 7 ручной запрос таблиц БД webforms
Кто-нибудь может объяснить мне, что я делаю не так, пожалуйста?
У меня есть веб-форма из 32 компонентов, и я пытаюсь создать XML из представленных данных. Анкета была заполнена и отправлена только один раз.
$query = db_select('webform_submitted_data', 'wsd');
$query->join('webform_component', 'wc', 'wsd.cid = wc.cid');
$query->fields('wsd', array('nid', 'cid', 'data', 'sid'));
$query->fields('wc', array('form_key', 'name'));
$results = $query->execute()->fetchAll();
Как вы можете видеть, я выполняю соединение между 2 таблицами inorder, чтобы получить form_key для каждого заполненного компонента webform.
Проблема в том, что я получаю намного больше, чем 32 результата-каким-то образом результат идет плохо.
1 ответ:
Если вы пытаетесь получить данные отправки, вы можете использовать api webforms для получения всех отправок для конкретной веб-формы с помощью функции webform_get_submissions. Затем вы можете проанализировать данные для каждого представления, чтобы построить свой XML.
module_load_include('inc','webform','includes/webform.submissions'); $submissions = webform_get_submissions(array('nid'=>$webform_nid)); foreach ($submissions as $submission){ foreach ($submission->data as $row=>$data){ ... } }