private function _generateWhereClause()
{
if (isset($_POST['customWhereClause']) && trim($_POST['customWhereClause']) != '') {
return ' WHERE ' . $_POST['customWhereClause'];
}
// If there are no search criteria set or no unary criteria operators,
// return
if (!isset($_POST['criteriaValues']) && !isset($_POST['criteriaColumnOperators']) && !isset($_POST['geom_func'])) {
return '';
}
// else continue to form the where clause from column criteria values
$fullWhereClause = array();
foreach ($_POST['criteriaColumnOperators'] as $column_index => $operator) {
$unaryFlag = $GLOBALS['PMA_Types']->isUnaryOperator($operator);
$tmp_geom_func = isset($_POST['geom_func'][$column_index]) ? $_POST['geom_func'][$column_index] : null;
$whereClause = $this->_getWhereClause($_POST['criteriaValues'][$column_index], $_POST['criteriaColumnNames'][$column_index], $_POST['criteriaColumnTypes'][$column_index], $operator, $unaryFlag, $tmp_geom_func);
if ($whereClause) {
$fullWhereClause[] = $whereClause;
}
}
// end foreach
if (!empty($fullWhereClause)) {
return ' WHERE ' . implode(' AND ', $fullWhereClause);
}
return '';
}