Drupal 7手动查询webforms数据库表

时间:2012-10-05 16:19:38

标签: mysql drupal-7 drupal-webform

有人能让我深入了解我做错了吗?

我有一个包含32个组件的webform,我正在尝试创建提交数据的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();

如您所见,我正在两个表之间执行连接,以便为每个填充的webform组件获取form_key。

问题是我得到了更多的32个结果 - 不知何故结果出现了严重错误。

1 个答案:

答案 0 :(得分:10)

如果您尝试获取提交数据,可以使用webforms api检索具有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){
        ...
    }
}