PHP - Problemas com Orientação a objetos.[RESOLVIDO]
11 respostas
marcoslogan
Oi, pessoal tudo bem com vocês?
Estou com um problema com um projeto que tenho que apresentar na quarta-feira.
Estou desenvolvendo um projeto de fórum de discussão. Até aí tudo bem, só que quando eu chamo o método inserir que está na fachada, quando chega no repositório de dados ele simplesmente não mostra nenhum valor, tentei mudar de diversas maneiras o meu código e até agora nada. Será que alguém poderia me ajudar?
Código da fachada:
$fachada=newFachada();try{$usuario=newUsuario();$usuario->setNome($_POST['nome']);$usuario->setDataNascimento($_POST['datanascimento']);$fachada->inserirUsuario($usuario);echo"usuario cadastrado com sucesso!";}catch(UsuarioCadastroException$e){}
código do repositório
//Antes eu tinha codificado assim.publicfunctioninserirUsuario(Usuario$usuario){}// depois mudei para istopublicfunctioninserirUsuario($usuario){if($usuarioinstanceofUsuario){try{$sql="";//Declaração sql$resultado=mysql_query($sql);}catch(Exception$e){}}}
Ele simplesmente não manda os valores que está na página php para o repositório.
Você esta passano no parametro uma Classe que esta instanciado atraves de um objeto, isso esta ok.
O problema é que no seu Looping vc esta fazendo na sua classe, mas isso não funciona…
Você tem que fazer um Looping em um atributo de sua classe, caso contrário, vc esta fazendo um Looping em nada…
Pq tem q ser um atributo? pq ele tem um valor.
Para ter certeza, coloque um comando de exceção
Algo desse tivo;;
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Query Inválida: ' . mysql_error());
}
marcoslogan
Código do meu repositório de dados
require_once('/utilitarios/GerenciarConexao.class.php');require_once('/classesbasicas/Usuario.class.php');require_once('/utilitarios/UsuarioCadastroInserirException.php');require_once('/utilitarios/ConsultaErroException.php');require_once('/utilitarios/UsuarioCadastroAlterarException.php');require_once('/utilitarios/UsuarioCadastroExcluirException.php');classRepositorioUsuario{private$con;publicfunction__construct(){$this->con=GerenciarConexao::getConexao();}publicfunctionverificarExistencia($codigo){$retorno=false;try{if(is_int($codigo)){$sql="Select codigo from usuario where codigo = '$codigo'";$resultado=mysql_query($sql);if($resultado){$retorno=true;}}}catch(Exception$e){thrownewConsultaErroException("Erro ao tentar verificar a existencia do usuario.");}return$retorno;}publicfunctioninserir($usuario){if($usuarioinstanceofUsuario){try{$sql="Insert into usuario(nome, datanascimento, login, senha, email, estatus) Values(".$usuario->getNome().",".$usuario->getDataNascimento().",".$usuario->getLogin().",".$usuario->getSenha().",".$usuario->getEmail().","."'1')";$resultado=mysql_query($sql);}catch(Exception$e){thrownewUsuarioCadastroInserirException("Erro ao tentar inserir os dados do usuario.");}}}publicfunctionalterar($usuario){if($usuarioinstanceofUsuario){try{$sql="Update usuario set nome = '$usuario->getNome()', datanascimento = '$usuario->getDataNascimento()', login = '$usuario->getLogin()', senha = '$usuario->getSenha()', email = '$usuario->getEmail()' where codigo = '$usuario->getCodigo()' and estatus = '1'";$resultado=mysql_query($sql);}catch(Exception$e){thrownewUsuarioCadastroAlterar("Erro ao tentar alterar os dados do usuario.");}}}publicfunctionexcluir($usuario){if($usuarioinstanceofUsuario){try{$sql="Update usuario set estatus = '0' where codigo = '$usuario->getCodigo()' and estatus = '1'";$resultado=mysql_query($sql);}catch(Exception$e){thrownewUsuarioCadastroExcluirException("Erro ao tentar excluir os dados do usuario");}}}publicfunctionlistar($usuario){$listaUsuario=-1;$contador=0;if($usuarioinstanceofUsuario){try{$sql="Select * from usuario";if($usuario->getNome()==""){if($usuario->getCodigo()>0){$sql." where codigo = '$usuario->getCodigo()' and estatus = '1' order by codigo";}else{if($usuario->getDataNascimento()>0){$sql." where datanascimento = '$usuario->getDataNascimento()' and estatus = '1' order by datanascimento";}else{if($usuario->getEmail()!=""){$sql." where email = '$usuario->getEmail()' and estatus ='1' order by email";}else{}}}}else{sql."where estauts ='1' order by nome";}$resultado=mysql_query($sql);while($linha=mysql_fetch_array($resultado)){$listaUsuario[]=$linha;}}catch(Exception$e){thrownewConsultaErroException("Erro ao tentar listar os dados do usuario");}}return$listaUsuario;}}
marcoslogan
É assim como está agora. eu só modifiquei algumas coisas.
o parâmetro de entrada de método estava assim:
public function inserirUsuario(Usuario $usuario){}//estava assim.
perdeu
lembre q vc tem colocar aspas no valores q n são integer
$sql="Insert into usuario(nome, datanascimento, login, senha, email, estatus) Values(".$usuario->getNome().",".$usuario->getDataNascimento().",".$usuario->getLogin().",".$usuario->getSenha().",".$usuario->getEmail().","."'1')";
imprimiu o valor de $sql?
marcoslogan
Mas eu tinha colocado. e não adiantou.
perdeu
o excluir e alterar funcionam??
marcoslogan
Não. Se o incluir não funcionou o alterar e o excluir também não funcionarão.
É que tem similaridades no código.
na código sql eu fiz o mesmo para o incluir e o alterar. os valores eu passei da mesma forma.