You are here

function _webform_analysis_rows_select in Webform 5

Same name and namespace in other branches
  1. 5.2 components/select.inc \_webform_analysis_rows_select()
  2. 6.2 components/select.inc \_webform_analysis_rows_select()

Calculate and returns statistics about results for this component from all submission to this webform. The output of this function will be displayed under the "results" tab then "analysis".

Parameters

$component: An array of information describing the component, directly correlating to the webform_component database schema

Return value

An array of data rows, each containing a statistic for this component's submissions.

File

components/select.inc, line 318

Code

function _webform_analysis_rows_select($component) {
  $rows = explode("\n", _webform_filtervalues($component['extra']['items'], FALSE));
  $options = array();
  foreach ($rows as $row) {
    $row = trim($row);
    if (preg_match('/^([^"|]+)\\|(.*)$/', $row, $matches)) {
      $options[$matches[1]] = $matches[2];
    }
    else {
      $options[_webform_safe_name($row)] = $row;
    }
  }
  $query = 'SELECT data, count(data) as datacount ' . ' FROM {webform_submitted_data} ' . ' WHERE nid = %d ' . ' AND cid = %d ' . " AND data != '0' AND data != '' " . ' GROUP BY data ';
  $result = db_query($query, $component['nid'], $component['cid']);
  $rows = array();
  while ($data = db_fetch_array($result)) {
    if ($options[$data['data']]) {
      $display_option = $options[$data['data']];
    }
    else {
      $display_option = $data['data'];
    }
    $rows[] = array(
      $display_option,
      $data['datacount'],
    );
  }
  return $rows;
}