我绝对是drupal的初学者。如何在drupal中执行php操作
我已添加联系表(使用Webform module
)。
现在我想保存在表格中输入的数据。但我迷路了。我在网上搜索过,发现db_query()
是用来查询数据库的。
但我不知道在哪里写的PHP代码。请帮助我,或者如果您知道任何链接,请给我。
我绝对是drupal的初学者。如何在drupal中执行php操作
我已添加联系表(使用Webform module
)。
现在我想保存在表格中输入的数据。但我迷路了。我在网上搜索过,发现db_query()
是用来查询数据库的。
但我不知道在哪里写的PHP代码。请帮助我,或者如果您知道任何链接,请给我。
您最感兴趣的表格有webform
,webform_submissions
,webform_submitted_data
和webform_component
。看看这些表格,它们如何链接在一起变得非常明显。
你会想看看Drupal 7 Database API学习如何使用查询系统,但这里有一个例子,让你去:
/* Get a list of all submissions from webform for the node with ID (`nid`) of 1 */
$nid = 1;
$submissions = db_select('webform_submissions', 'ws')
->fields('ws')
->condition('nid', $nid)
->execute();
/* If you want to use db_query and a plain old SQL statement instead you'd do it like this:
$submissions = db_query('SELECT * FROM webform_submissions WHERE nid = :nid', array('nid' => $nid)); */
/* Loop through the submissions and load up the submitted data for each */
$submission_data = array();
foreach ($submissions as $submission) {
$query = db_select('webform_submitted_data', 'wsa')
->fields('wc', array('name'))
->fields('wsa', array('data'))
->condition('sid', $submission->sid);
/* Join in the component table to get the element label */
$query->join('webform_component', 'wc', 'wc.nid = wsa.nid AND wc.sid = wsa.cid');
$submission_data[] = $query->execute()->fetchAllKeyed();
}
在代码的最后,你将有一个数组( $submission_data
),其中包含提供节点的提交数据数组列表。每个数组的项目都有组件标签的关键字和提交的用户值的值。
希望帮助
感谢clive!这对我很有帮助 – AssamGuy
这是值得注意的是,对于大多数正常使用情况下,您再也不需要看数据库或做任何种类的编码。用户界面允许您查看提交的表单(并查看提交的内容)。您还可以将Webform配置为向您发送每个提交的副本(通过电子邮件)......没有任何“隐藏”或以任何方式混淆数据库,您都可以做很多事情。
如果您对Drupal和Webforms真的很陌生,我只是认为我会指出这一点。 UI中有很多标签可能会被忽略。
Webform有Views支持,所以你可能不需要编写数据库查询来生成你想要的报告。
Webform已将表单提交数据保存到数据库,您是否试图将数据再次保存在单独的表中? – Clive
不,我只想知道它保存在哪里以及如何处理这些数据以进行其他操作。 – AssamGuy
没问题,您使用的是Drupal版本(6或7)?语法的差异取决于版本 – Clive