Drupal CMS includes a webform where each form has an ID. An example to retrieve number of user access of a Drupal database for a given node id. The column ws.created is stored with a unix timestamp (looks like many digits number). Use MySQL function from_unixtime to format into something like 2023-10-02. The node in this example have an ID=940.
select count(ufd.name) submissions, DATE_FORMAT(from_unixtime(ws.created), "%Y-%m-%d")
from webform_submission ws
left join users_field_data ufd
on ws.uid = ufd.uid
left join node_field_data nfd
on ws.entity_id = nfd.nid
where ws.in_draft = 0
and ws.entity_type like 'node'
and ws.entity_id = 940
group by DATE_FORMAT(from_unixtime(ws.created), "%Y-%m-%d")
from webform_submission ws
left join users_field_data ufd
on ws.uid = ufd.uid
left join node_field_data nfd
on ws.entity_id = nfd.nid
where ws.in_draft = 0
and ws.entity_type like 'node'
and ws.entity_id = 940
group by DATE_FORMAT(from_unixtime(ws.created), "%Y-%m-%d")
Here is a query to list all the associated users who accessed the webform
select ufd.name name, ufd.mail email, from_unixtime(ws.created) accepted_at, from_unixtime(ws.changed) changed_at, ws.remote_addr
,nfd.title, ws.uri URL
from webform_submission ws
left join users_field_data ufd
on ws.uid = ufd.uid
left join node_field_data nfd
on ws.entity_id = nfd.nid
where ws.in_draft = 0
and ws.entity_type like 'node'
and ws.entity_id = 940
,nfd.title, ws.uri URL
from webform_submission ws
left join users_field_data ufd
on ws.uid = ufd.uid
left join node_field_data nfd
on ws.entity_id = nfd.nid
where ws.in_draft = 0
and ws.entity_type like 'node'
and ws.entity_id = 940
No comments:
Post a Comment