Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho esta classe de comexao como banco de dados.
<?php class db{ public $query = ""; public $db = ""; public $_id;//se for alteração ou deletação virá valores public $_array;//deve ser uma array com os cammpos a serem alterados public $_verifica;//deve vir a array com o campo do banco e o valor do input public $_deletar;//deve vir a array com as tabelas que devem ser procuradas antes de deletar function __CONSTRUCT(){ global $glob; $this->db = mysql_connect($glob['dbhost'], $glob['dbusername'], $glob['dbpassword']); if (!$this->db) die ($this->debug(true)); $selectdb = @mysql_select_db($glob['dbdatabase']); if (!$selectdb) die ($this->debug()); return $this->db; } public function select($query, $maxRows=0, $pageNum=0){ $this->query = $query; if($maxRows>0){ $startRow = $pageNum * $maxRows; $query = sprintf("%s LIMIT %d, %d", $query, $startRow, $maxRows); } $result = mysql_query($query, $this->db) or die (mysql_error()); if ($this->error()) die ($this->debug()); $output=false; for ($n=0; $n < mysql_num_rows($result); $n++){ $row = mysql_fetch_assoc($result); $output[$n] = $row; } return $output; } public function misc($query) { $this->query = $query; $result = mysql_query($query, $this->db); if ($this->error()) die ($this->debug()); if($result == TRUE){ return TRUE; } else { return FALSE; } } public function numrows($query) { $this->query = $query; $result = mysql_query($query, $this->db); return mysql_num_rows($result); } public function paginate($numRows, $maxRows, $pageNum=0, $pageVar="page", $class="", $fixo=""){ global $lang; $navigation = ""; $totalPages = ceil($numRows/$maxRows); $queryString = ""; if (!empty($_SERVER['QUERY_STRING'])) { $params = explode("&", $_SERVER['QUERY_STRING']); $newParams = array(); foreach ($params as $param) { if (stristr($param, $pageVar) == false) { array_push($newParams, $param); } } if (count($newParams) != 0) { $queryString = "&" . htmlentities(implode("&", $newParams)); } } if($totalPages> 1){ $navigation = ""; $upper_limit = $pageNum + 2; $lower_limit = $pageNum - 2; if ($pageNum > 0) { if(($pageNum - 2)>0){ $first = sprintf("%s?".$pageVar."=%d%s".$mais, $currentPage, 0, $queryString); $navigation .= "<a href='".$first."' class='".$class."'>«</a> "; } $prev = sprintf("%s?".$pageVar."=%d%s", $currentPage, max(0, $pageNum - 1), $queryString); $navigation .= "<a href='".$prev.$mais."' class='".$class."'><</a> "; } for($i = 0; $i < $totalPages; $i++){ $pageNo = $i+1; if($i==$pageNum){ $navigation .= " <span class='$fixo'>[".$pageNo."]</span> "; } elseif($i!==$pageNum && $i<$upper_limit && $i>$lower_limit){ $noLink = sprintf("%s?".$pageVar."=%d%s", $currentPage, $i, $queryString); $navigation .= " <a href='".$noLink.$mais."' class='".$class."'>".$pageNo."</a> "; } elseif(($i - $lower_limit)==0){ $navigation .= "<span class='$fixo'>…</span>"; } } if (($pageNum+1) < $totalPages) { $next = sprintf("%s?".$pageVar."=%d%s", $currentPage, min($totalPages, $pageNum + 1), $queryString); $navigation .= "<a href='".$next."$mais' class='".$class."'>></a> "; if(($pageNum + 3)<$totalPages){ $last = sprintf("%s?".$pageVar."=%d%s".$mais, $currentPage, $totalPages-1, $queryString); $navigation .= "<a href='".$last.$mais."' class='".$class."'>»</a>"; } } } return $navigation; } public function insert ($tablename, $record){ if(!is_array($record)) die ($this->debug("array", "Insert", $tablename)); $count = 0; foreach ($record as $key => $val){ if ($count==0) { $fields = "`".$key."`"; if ($val == "now()") $values = $val; else $values = "'".$val."'"; } else { $fields .= ", "."`".$key."`"; if ($val == "now()") $values .= ", ".$val; else $values .= ", '".$val."'"; } $count++; } $query = "INSERT INTO ".$tablename." (".$fields.") VALUES (".$values.")"; $this->query = $query; mysql_query($query, $this->db); if ($this->error()) die ($this->debug()); if ($this->affected() > 0) return true; else return false; } public function update ($tablename, $record, $where){ if(!is_array($record)) die ($this->debug("array", "Update", $tablename)); $count = 0; foreach ($record as $key => $val){ if ($count==0) $set = "`".$key."`"."= '".$val."'"; else $set .= ", " . "`".$key."`". "= '".$val."'"; $count++; } $query = "UPDATE ".$tablename." SET ".$set." WHERE ".$where; $this->query = $query; mysql_query($query, $this->db); if ($this->error()) die ($this->debug()); if ($this->affected() > 0) return true; else return false; } public function delete($tablename, $where, $limit=""){ $query = "DELETE from ".$tablename." WHERE ".$where; if ($limit!="") $query .= " LIMIT " . $limit; $this->query = $query; mysql_query($query, $this->db); if ($this->error()) die ($this->debug()); if ($this->affected() > 0){ return TRUE; } else { return FALSE; } } public function mySQLSafe($value, $quote="'") { //colocar "'" nas variaveis -> 'variavel' if (get_magic_quotes_gpc()) { $value = stripslashes($value); } if(version_compare(phpversion(),"4.3.0")=="-1") { $value = mysql_escape_string($value); } else { $value = mysql_real_escape_string($value); } $value = $quote . $value . $quote; return $value; } private function debug($type="", $action="", $tablename=""){ switch ($type){ case "connect": $message = "Um Erro de MYSQL."; $result = mysql_errno() . ": " . mysql_error(); $query = ""; $output = "Não foi possível conectar ao banco de dados. Verifique com o seu administrador para ver se o local da conexão, usuário e senha do Banco de Dados estao certos."; break; case "array": $message = $action." Um erro ocorreu."; $result = "Não pode atualizar a tabela <b>".$tablename."</b> a variável deve ser uma array, entra em contato com seu Administrador."; $query = ""; $output = "Ocorreu um erro ao acessar a base de dados. Esteja certo de certificar-se que seus ajustes da conexão da base de dados estejam corretos e que o usuário de MySQL também."; break; default: if (mysql_errno($this->db)){ $message = "Um Erro de MYSQL."; $result = mysql_errno($this->db) . ": " . mysql_error($this->db); $output = "Ocorreu um erro ao acessar a base de dados. Esteja certo de certificar-se que seus ajustes da conexão da base de dados estejam corretos e que o usuário de MySQL também."; } else { $message = "A QUERY do MySQL executou com sucesso."; $result = mysql_affected_rows($this->db) . " Colunas afetadas"; $output = "Registro de vista para detalhes."; } $linebreaks = array("\n", "\r"); if($this->query != "") $query = "SQL = " . str_replace($linebreaks, " ", $this->query); else $query = ""; break; } $output = "<b style='font-family: Arial, Helvetica, sans-serif; color: #0B70CE;'>".$message."</b> \n<span style='font-family: Arial, Helvetica, sans-serif; color: #000000;'>".$result."</span> \n<p style='Courier New, Courier, mono; border: 1px dashed #666666; padding: 10px; color: #000000;'>".$query."</p>\n"; return $output; } private function error(){ if (mysql_errno($this->db)) return true; else return false; } public function insertid(){ return mysql_insert_id($this->db); } public function affected(){ return mysql_affected_rows($this->db); } public function close(){ mysql_close($this->db); } } ?>fiz esta classe experimental para gravar, alterar e deletar somente as unidades.
<?php class unidades extends db{ //variaveis privadas private $_tabela="net_unidade"; private $deletar; //construção da classe function __CONSTRUCT(){ parent::__CONSTRUCT(); //se $_array e $_id vierem preenchidas pode ser uma alteração ou deletação if(parent::_array != "" && parent::_id != ""){ //se só a $_array vier preenchida é alteração if(parent::_array != ""){ if(parent::_id != ""){ //Verifica sehá alguma pendencia ao deletar if(!$this->verificar()){ //se não deleta a linha pedida $this->getAlterar(); } } else { //verifica se há alguma mensagem de erro ao tentar gravar if(!$this->verificar()){ $this->getInserir(); } } //Se só a $_id for preenchida é alteração } else if(parent::_id != ""){ //verifica se algum campo veio vazio para emitir a mensagem de erro if(!$this->verificar()){ $this->getAlterar(); } } } } //metodos privados private function getInserir(){ parent::insert($this->_tabela, $this->_array); } private function getExcluir(){ parent::delete($this->_tabela, $this->_id); } private function getAlterar(){ parent::update($this->_tabela, $this->_array, $this->_id); } //metodos publicos public function verificar(){ //se $_array e $_id vierem preenchidas pode ser uma alteração ou deletação if(parent::_array != "" && parent::_id != ""){ //se só a $_array vier preenchida é alteração if(parent::_array != ""){ //Verifica sehá alguma pendencia ao deletar foreach(parent::_verifica as $i=>$v){ if($v == ""){ return false; } else { return true; } } //Se só a $_id for preenchida é alteração } else if(parent::_id != ""){ //verifica as tabelas para nao emitir uma mensagem de erro estranha $this->deletar = explode("-", parent::_deletar); foreach($this->deletar as $i=>$v){ //a variavel $v tera o nome da tabela a ser olhada $sql = "SELECT * FROM $v WHERE ".parent::_id; if(parent::numrows($sql) > 0){ return false; } else { return true; } } } } else { //verifica se há alguma mensagem de erro ao tentar gravar foreach(parent::_verifica as $i=>$v){ if($v == ""){ return false; } else { return true; } } } } } ?>ta dando erro, e nao conseguir arrumar, o que pode ser ?
o erro é Fatal error: Undefined class '_array' in unidades.php on line 10
esta '_array', não é parent desta nova classe por ser extendida ?
grato
guuilherme****
Carregando comentários...