【问题标题】:Drupal 7 manually querying webforms DB tablesDrupal 7 手动查询 webforms 数据库表
【发布时间】:2012-10-05 16:19:37
【问题描述】:

谁能告诉我我做错了什么?

我有一个包含 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 个表之间执行连接,以便为每个填充的网络表单组件获取 form_key。

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

【问题讨论】:

    标签: mysql drupal-7 drupal-webform


    【解决方案1】:

    如果您尝试获取提交数据,您可以使用 webforms api 通过webform_get_submissions 函数检索特定 webform 的所有提交。然后您可以解析每个提交的数据以构建您的 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){
            ...
        }
    }
    

    【讨论】:

    • 谢谢迈克。我刚刚通过在 webform.submissions 之前添加“包含”目录来稍微更新您的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2012-04-23
    • 2011-04-13
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多