Orientação A Objeto Com Repositorio No Db
#1
Posted 31/12/2004, 13:14
ta dando este erro:
Warning: Missing argument 1 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 2 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 3 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 4 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 5 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 6 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 7 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 8 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 9 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
Warning: Missing argument 10 for funcionario::funcionario() in c:\AppServ\www\medtec\obj\Funcionario.obj.php on line 14
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
vo passar os codigos aki
teste.php
PHP |
<? require ("RepositorioFuncionario.php"); $cpf = 123; echo $funcionario = RepositorioFuncionario::getFuncionarioCPF($cpf); ?> |
Banco.ojb.php
PHP |
<? class Banco { var $id; function Banco($server = 'localhost',$user = '', $pass = ''){ $this->id = mysql_connect($server,$user,$pass) or die(mysql_error()); mysql_select_db("medtec"); } function executeSql($sql){ if( $resultado = mysql_query( $sql,$this->id ) or die ( mysql_error() ) ){ return $resultado; }else{ return false; } } } ?> |
Funcionario.obj.php
PHP |
<? class funcionario { var $id; var $nome; var $cpf; var $senha; var $endereco; var $bairro; var $telefone; var $cidade; var $uf; var $cep; function funcionario($id,$nome,$cpf,$senha,$endereco,$bairro,$telefone,$cidade,$uf,$cep){ $this->setID($id); $this->setNome($nome); $this->setCPF($cpf); $this->setSenha($senha); $this->setEndereco($endereco); $this->setBairro($bairro); $this->setTelefone($telefone); $this->setCidade($cidade); $this->setUF($uf); $this->setCEP($cep); } function getID(){ return $this->id; } function setID($valor){ $this->id = $valor; } function getNome(){ return $this->nome; } function setNome($valor){ $this->nome = $valor; } function getCPF(){ return $this->cpf; } function setCPF($valor){ $this->cpf = $valor; } function getSenha(){ return $this->senha; } function setSenha($valor){ $this->senha = $valor; } function getEndereco(){ return $this->endereco; } function setEndereco($valor){ $this->endereco = $valor; } function getBairro(){ return $this->bairro; } function setBairro($valor){ $this->bairro = $valor; } function getTelefone(){ return $this->telefone; } function setTelefone($valor){ $this->telefone = $valor; } function getCidade(){ return $this->cidade; } function setCidade($valor){ $this->cidade = $valor; } function getUF(){ return $this->uf; } function setUF($valor){ $this->uf = $valor; } function getCEP(){ return $this->cep; } function setCEP($valor){ $this->cep = $valor; } } ?> |
RepositorioFuncionario.php
PHP |
<? require("Banco.obj.php"); require("Funcionario.obj.php"); class RepositorioFuncionario { function getFuncionarioCPF($cpf){ $con = new Banco(); $funcionario = new Funcionario(); $sql = "SELECT * FROM funcionarios WHERE CPF = ".$funcionario->getCPF().")"; if ($resultado = $con->executeSql($sql)){ $linha = mysql_fetch_array($resultado,MYSQL_ASSOC); return new funcionario($linha['id'],$linha['nome'],$linha['cpf'],$linha['senha'],$linha['endereco'],$linha['bairro'],$linha['telefone'],$linha['cidade'],$linha['uf'],$linha['cep']); }else{ return false; } } } ?> |
feliz 2005 ai pra vcs e por favor me ajudem!
Edição feita por: SlyX, 31/12/2004, 13:50.
#2
Posted 01/01/2005, 01:03
tipo assim:
PHP |
<?php <?php class funcionario { var $nome; var $cpf; var $telfone; // continua com as outras propriedades /** * Procura um usuario pelo cpf dele. * Se o funcionario existir ele carrega todos * os dados dele na classe */ function findByCPF ($cpf) { $result = mysql_query ("SELECT * FROM funcionarios WHERE cpf = $cpf"); $funcionario = mysql_fetch_assoc($result); if ($funcionario) { $this->nome = $funcionario['nome']; $this->cpf = $funcionario['cpf']; $this->telefone = $funcionario['telefone']; // continua com as outras propriedades } } // o resto da classe pode ser igual: getID, getNome, ... } ?> |
Eu faço um pouco diferente do método que tu usa, dá uma olhada em http://forum.phpclub.../2004/dao_e_vo/
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
#3
Posted 01/01/2005, 05:44
O problema é que tu não ta passando os parametros da classe Funcionario. Na verdade tu deve pegar os dados do funcionario direto do banco de dados e não passados como parametros.
tipo assim:
PHP |
<?php <?php class funcionario { var $nome; var $cpf; var $telfone; // continua com as outras propriedades /** * Procura um usuario pelo cpf dele. * Se o funcionario existir ele carrega todos * os dados dele na classe */ function findByCPF ($cpf) { $result = mysql_query ("SELECT * FROM funcionarios WHERE cpf = $cpf"); $funcionario = mysql_fetch_assoc($result); if ($funcionario) { $this->nome = $funcionario['nome']; $this->cpf = $funcionario['cpf']; $this->telefone = $funcionario['telefone']; // continua com as outras propriedades } } // o resto da classe pode ser igual: getID, getNome, ... } ?> |
Eu faço um pouco diferente do método que tu usa, dá uma olhada em http://forum.phpclub.../2004/dao_e_vo/ certo mas ai q ta
a função que busca no banco deve esta no outro arquivo entede? nao pode estar nesta funcionarios a sql saca?
#4
Posted 01/01/2005, 15:27
Mas de qualquer jeito a tua classe RepositorioFuncionario o problema é a primeira instanciação da classe funcionario. nela tu não passa nenhum parametro. na linha que tem:
PHP |
<?php $sql = "SELECT * FROM funcionarios WHERE CPF = ".$funcionario->getCPF().")"; ?> |
Mesmo assim, aconselho que tu leia o artigo que eu postei.
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
#5
Posted 01/01/2005, 20:59
No artigo que eu postei a URL tem um exemplo de como fazer usando a SQL na outra classe.
Mas de qualquer jeito a tua classe RepositorioFuncionario o problema é a primeira instanciação da classe funcionario. nela tu não passa nenhum parametro. na linha que tem:
PHP |
<?php $sql = "SELECT * FROM funcionarios WHERE CPF = ".$funcionario->getCPF().")"; ?> |
Mesmo assim, aconselho que tu leia o artigo que eu postei. fiz isso q ele fica me retornando: Object id #2
como faço para ver o valro deste objeto sei la e pa?
#6
Posted 01/01/2005, 22:40
Primeiro, quanto mais claramente for escrita tua duvida melhor eu vou poder te ajudar! O teu objeto tem varios valores (cpf, telefone, nome, cep, ...) que tu pode exibir. Se tu queres ver todo o conteudo do objeto tu podes fazer um metodo que retorna uma string, convencionalmente ele se chama __toString().como faço para ver o valro deste objeto sei la e pa?
PHP |
<?php class funcionario { // outros metodos function __toString() { return "Funcionário: {$this->nome}"; } } ?> |
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)