/** * Formata SQL legenda. * * @param int|string $indicador * @param int|string $espacialidade * @return string */ public function carrega($indicador, $espacialidade) { $ind = Bd::escape($indicador); $esp = VerificadorEspacialidade::getEspacialidade($espacialidade); $maior_melhor = null; $sql = "SELECT\n cg.id AS cg_id, \n c.id AS c_id, \n c.nome AS nome, \n v.maiormelhor AS maior_melhor,\n CAST(c.maximo AS varchar) AS max,\n CAST(c.minimo AS varchar) AS min,\n c.cor_preenchimento AS cor_preenchimento\n FROM\n classe_grupo AS cg, classe AS c, variavel AS v\n WHERE\n c.fk_classe_grupo=cg.id AND\n v.id=cg.fk_variavel AND\n cg.fk_variavel={$ind} AND\n cg.espacialidade={$esp}\n ORDER BY\n c_id DESC"; $this->bd->execSql($sql); $legenda = new LegendaPadrao(); while ($row = $this->bd->proximo()) { $faixa = new FaixaLegenda(); $faixa->setId($row->c_id); $faixa->setNome($row->nome); $faixa->setCor($row->cor_preenchimento); $faixa->setMax($row->max); $faixa->setMin($row->min); $legenda->addFaixa($faixa); // seta ordem das ASC ou DESC da legenda if ($maior_melhor == null) { $maior_melhor = $row->maior_melhor; $legenda->setOrdem($maior_melhor); } } // die($sql); return $legenda; }
/** * Retorna array de indicadores. * * @return array */ private function _getIndicadoresArray() { $sql = sprintf("SELECT var.id AS id, var.sigla AS sigla, lg.nomecurto AS nomecurto, lg.nomelongo AS nomelongo " . "FROM variavel var INNER JOIN lang_var lg on var.id = lg.fk_variavel " . "WHERE lg.lang = '%s' " . "ORDER BY var.ordem ASC", Bd::escape($this->user_lang)); $this->bd->execSql($sql); $result = array(); while ($row = $this->bd->proximo()) { $obj = new Variavel($row->id, $row->sigla, $row->nomecurto, $row->nomelongo); $result[] = $obj; } return $result; }
/** * Escape ID ou um array de IDs. * * @param integer|array $id * @return integer|array */ protected function escapeId($id) { // id pode ser um array ou ser valor único if (!is_array($id)) { $id = Bd::escape($id); } else { foreach ($id as $k => $v) { $id[$k] = Bd::escape($v); } } return $id; }