You are here

function quant_execute_query in Quant 6

Perform a database query based on quant data for calculating time-based trends

Parameters

&$quant: A quant object

1 call to quant_execute_query()
quant_process in ./quant.module
Process quants and convert them to charts with data plotted

File

./quant.module, line 225

Code

function quant_execute_query(&$quant) {

  // Extract the period of time
  $period = $quant->period;

  // Generate if a query wasn't supplied
  if (!isset($quant->query)) {

    // Generate a count query, if needed
    if ($quant->dataType == 'count') {
      $query = "SELECT COUNT({$quant->count}), {$quant->count} FROM {{$quant->table}}";
      $query .= " WHERE {$quant->field} >= %d" . (is_array($period) ? " AND {$quant->field} <= %d" : "");
      $query .= " GROUP BY {$quant->count}";
    }
    else {
      $query = "SELECT " . ($quant->dataType == 'multiple' ? "{$quant->group}, " : '') . "{$quant->field}";
      $query .= " FROM {{$quant->table}}";
      $query .= " WHERE {$quant->field} >= %d" . (is_array($period) ? " AND {$quant->field} <= %d" : "");
      $query .= " ORDER BY {$quant->field} DESC";
    }

    // Add the generated query to the object
    $quant->query = $query;
  }
  else {
    $query = is_array($period) ? $quant->queryCustom : $quant->query;
  }
  $quant->items = is_array($period) ? db_query($query, $period[0], $period[1]) : db_query($query, $period);
}