public function findAll($qbuilder) { if (UserSession::getInstance()->getAccessLevel() < 3) { die("<h1>Forbidden resource for you.</h1>"); } @($dao = new DAO(Test)); if (!isset($qbuilder)) { $qbuilder = new QueryBuilder('test'); $qbuilder->addOrder("dsc_code", QueryBuilder::$ASC, 'discipline'); $qbuilder->addOrder("tst_title", QueryBuilder::$ASC); } $qbuilder->addJoin("discipline", "tst_dsc_id", "dsc_id"); $qbuilder->addLeftJoin("testproblems", "tst_id", "tpb_tst_id"); $qbuilder->addGroupBy("tst_id", "test"); $tests = $dao->findByQueryWithMetaFields($qbuilder); return $tests; }
/** * Builds the SQL statement to select the data for this page and schema * * @return array Two fields: the SQL string and the parameters array */ protected function buildGetDataSQL() { $sep = Search::CONCAT_SEPARATOR; $stable = 'data_' . $this->schema->getTable(); $mtable = 'multi_' . $this->schema->getTable(); $QB = new QueryBuilder(); $QB->addTable($stable, 'DATA'); $QB->addSelectColumn('DATA', 'pid', 'PID'); $QB->addGroupByStatement('DATA.pid'); foreach ($this->schema->getColumns(false) as $col) { $colref = $col->getColref(); $colname = 'col' . $colref; $outname = 'out' . $colref; if ($col->getType()->isMulti()) { $tn = 'M' . $colref; $QB->addLeftJoin('DATA', $mtable, $tn, "DATA.pid = {$tn}.pid AND DATA.rev = {$tn}.rev AND {$tn}.colref = {$colref}"); $col->getType()->select($QB, $tn, 'value', $outname); $sel = $QB->getSelectStatement($outname); $QB->addSelectStatement("GROUP_CONCAT({$sel}, '{$sep}')", $outname); } else { $col->getType()->select($QB, 'DATA', $colname, $outname); $QB->addGroupByStatement($outname); } } $pl = $QB->addValue($this->pid); $QB->filters()->whereAnd("DATA.pid = {$pl}"); $pl = $QB->addValue($this->getLastRevisionTimestamp()); $QB->filters()->whereAnd("DATA.rev = {$pl}"); return $QB->getSQL(); }
public function findAll($qbuilder) { if (UserSession::getInstance()->getAccessLevel() < 3) { die("<h1>Forbidden resource for you.</h1>"); } @($dao = new DAO(Problem)); if (!isset($qbuilder)) { $qbuilder = new QueryBuilder('problem'); $qbuilder->addOrder("dsc_code", QueryBuilder::$ASC, 'discipline'); $qbuilder->addOrder("prb_difficultyLevel", QueryBuilder::$ASC); $qbuilder->addOrder("prb_title", QueryBuilder::$ASC); } $qbuilder->addJoin("discipline", "prb_dsc_id", "dsc_id"); $qbuilder->addLeftJoin("evaluationcase", "prb_id", "evc_prb_id"); $qbuilder->addGroupBy("prb_id", "problem"); $problems = $dao->findByQueryWithMetaFields($qbuilder); return $problems; }