/** * method supporting recursion through all criterions to give * us a string array of tables from each criterion * @return void */ private function addCriterionTable(Criterion $c, &$s) { $s[] = $c->getTable(); $clauses = $c->getClauses(); $clausesLength = count($clauses); for ($i = 0; $i < $clausesLength; $i++) { $this->addCriterionTable($clauses[$i], $s); } }
/** * method supporting recursion through all criterions to give * us a string array of tables from each criterion * @return void */ private function addCriterionTable(Criterion $c, &$s) { $s[] = $c->getTable(); foreach ($c->getClauses() as $clause) { $this->addCriterionTable($clause, $s); } }
private function _createSqlFromCriterion(Criterion $aCriterion) { //var_dump( $aCriterion ); //$this->_hidden_criterion->getTable() // echo $aCriterion->getColumn(); // echo $aCriterion->getValue(); // echo $aCriterion->getComparison(); // var_dump( $aCriterion->getAllTables() ); // var_dump( $aCriterion->getAttachedCriterion() ); // var_dump( $aCriterion->getTable() ); $table = $aCriterion->getTable() ? $aCriterion->getTable() . '.' : ''; $value = $aCriterion->getValue(); if (is_array($value)) { foreach ($value as $key => $val) { $value[$key] = "'" . chks($val) . "'"; } if (count($value)) { $value = '(' . implode(',', $value) . ')'; } else { $value = '( NULL )'; } } else { if (!is_null($value) && !is_numeric($value)) { $value = "'" . chks($value) . "'"; } } if (is_null($value)) { if (self::EQUAL == $aCriterion->getComparison() || self::ISNULL == $aCriterion->getComparison() || self::IN == $aCriterion->getComparison()) { $partWhere = trim($table . $aCriterion->getColumn(), '.') . " IS NULL"; } else { $partWhere = trim($table . $aCriterion->getColumn(), '.') . " IS NOT NULL"; } } else { $partWhere = trim($table . $aCriterion->getColumn(), '.') . $aCriterion->getComparison() . $value; } $clauses = $aCriterion->getClauses(); if (is_array($clauses) && count($clauses)) { $conjunctions = $aCriterion->getConjunctions(); for ($i = 0; $i < count($clauses); $i++) { $partWhere = '(' . $partWhere . ')' . $conjunctions[$i] . $this->_createSqlFromCriterion($clauses[$i]); } } return $partWhere; }