/* ************************* * Interface * ************************* class DataBase { private Object id public void Conectar(String server, String db, String user, String pass) public void Desconectar(void) public boolean SqlQuery(string sql) public Object getId(void) } ***************************** * Implementation * ***************************** */ class DataBase { // Conexão com o banco de dados var $id; // Cria uma conexão com o banco de dados function Conectar($server, $db, $user, $pass) { // Conecta ao server $this->id = mysql_connect($server, $user, $pass); // Seleciona o db if ($this->id) mysql_select_db($db, $this->id); else $this->id = 0; } // Desconecta com o banco de dados function Desconectar() { if ($this->id) mysql_close($this->id); else $this->id = 0; } function SqlQuery($sql) { return mysql_query($sql, $this->id); } // Retorna a conexão atual function getId() { return $this->id; } } ?> /* ************************* * Interface * ************************* class Consulta { private DataBase db private Object res private int row private int nrw private String[] dados public Consulta(DataBase db) public void Consultar(String sql) public void Dados(void) public String[] getPrimeiro(void) public String[] getProximo(void) public String[] getAnterior(void) public String[] getUltimo(void) public String[] getLinha(int linha) } ***************************** * Implementation * ***************************** */ class Consulta { // Instância de uma conexão com o database (class DataBase.php) var $db; // Resultado de uma consulta var $res; // Linha atual na consulta var $row; // Número de linhas retornadas na consulta var $nrw; // Array com os resultados var $dados; // Construtor da classe function Consulta(&$db) { $this->db = $db; $this->res = 0; $this->nrw = 0; $this->row = -1; $this->dados = ""; } // Realiza uma consulta ao db function Consultar($sql="") { if ($sql != "") { $this->row = 0; $this->res = $this->db->SqlQuery($sql); if ($this->res) { $this->nrw = mysql_num_rows($this->res); if ($this->nrw > 0) $this->Dados(); } } } // Retorna um array com os valores dos campos de uma linha do resultado de uma consulta function Dados() { mysql_data_seek($this->res, $this->row); $this->dados = mysql_fetch_array($this->res); } // Retorna a primeira linha do resultado de uma consulta function getPrimeiro() { $this->row = 0; $this->Dados(); return $this->dados; } // Retorna a próxima linha do resultado de uma consulta function getProximo() { $this->row = ($this->row < ($this->nrw -1)) ? ++$this->row : ($this->nrw - 1); $this->Dados(); return $this->dados; } // Retorna a linha anterior do resultado de uma consulta function getAnterior() { $this->row = ($this->row > 0) ? --$this->row : 0; $this->Dados(); return $this->dados; } // Retorna a última linha do resultado de uma consulta function getUltimo() { $this->row = $this->nrw - 1; $this->Dados(); return $this->dados; } // Retorna a linha correspondente a $linha, do resultado de uma consulta function getLinha($linha) { if ($linha > 0 && $linha < $this->nrw) { $this->row = $linha; $this->Dados(); return $this->dados; } } } ?> $server = "143.54.40.2"; $bd = "eencidb"; $user = "db_rrfer"; $pass = "Praia&Sol"; $home = "http://www.if.ufrgs.br/eenci"; ?>