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 3

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){
        ...
    }
}