我絕對是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