public function FrxDataSource::buildFilterSQL in Forena Reports 7.3
Same name and namespace in other branches
- 7.4 FrxDataSource.inc \FrxDataSource::buildFilterSQL()
Build the SQL clause based on builder data.
Parameters
$data:
File
- ./
FrxDataSource.inc, line 490 - Class that defines default methods for access control in an FrxDataSource
Class
- FrxDataSource
- @file Class that defines default methods for access control in an FrxDataSource
Code
public function buildFilterSQL($data) {
$clause = '';
$op = $data['op'];
$i = 0;
if ($data['filter']) {
foreach ($data['filter'] as $cond) {
$i++;
$conj = $i == 1 ? '' : $op . ' ';
if (isset($cond['filter'])) {
$clause .= $conj . ' (' . $this
->buildFilterSQL($cond) . " )\n";
}
else {
switch ($cond['op']) {
case 'IS NULL':
case 'IS NOT NULL':
$expr = $cond['field'] . ' ' . $cond['op'];
break;
default:
$expr = $cond['field'] . ' ' . $cond['op'] . ' ' . $this
->format($cond['value'], $cond['field'], array());
}
$clause .= ' ' . $conj . $expr;
}
}
}
return $clause;
}