Jump to content


Photo

Orientação A Objeto Com Repositorio No Db


  • Faça o login para participar
5 replies to this topic

#1 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

Posted 31/12/2004, 13:14

tipo axo q fiz algo errado =\
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.

MSN: fabiovaz arroba gmail.com

#2 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 01/01/2005, 01:03

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/
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#3 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

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?
MSN: fabiovaz arroba gmail.com

#4 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 01/01/2005, 15:27

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().")";

?>
tu tem que trocar $funcionario->getCPF() por $cpf (acho q não preciso explicar pq, segue teu código passo-a-passo e tu entende)
Mesmo assim, aconselho que tu leia o artigo que eu postei.
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#5 SlyX

SlyX

    12 Horas

  • Usuários
  • 178 posts
  • Sexo:Não informado

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().")";

?>
tu tem que trocar $funcionario->getCPF() por $cpf (acho q não preciso explicar pq, segue teu código passo-a-passo e tu entende)
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? :D
MSN: fabiovaz arroba gmail.com

#6 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 01/01/2005, 22:40

o lance é que tu tá mau utilizando o operador echo. Tu pode entender melhor como ele funciona lendo o manual do PHP, mas basicamente ele serve pra exibir strings (o [url=http://br.php.net/manual/pt_BR/language.types.string.php]manual[/code] também pode te ajudar a entender melhor oque é uma string), isso quer dizer que o operador echo não exibe nem objetos nem arrays.

como faço para ver o valro deste objeto sei la e pa?

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().

PHP
<?php

class funcionario
{
 
// outros metodos

function __toString()
{
 return
"Funcionário: {$this->nome}";
}
}

?>

Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq