Tratar select retornando um objeto numa classe OOP PHP
05/09/2017
0
Boa tarde,
Estou desenvolvendo um sistema de cadastro e consulta de clientes.. consigo incluí-los e fazer o select para consulta, porém não consigo tratar o objeto retornado, alguem poderia me ajudar?
vou colocar abaixo o código fonte da classe / métodos / retorno
Classe:
Abaixo os métodos:
Abaixo o retorno do objeto:
Acima é o retorno de uma inclusão X que fiz no banco de dados.. eu preciso tratar esses dados para retorná-los num campo text do html da página de pesquisa
Podem me ajudar?
Estou desenvolvendo um sistema de cadastro e consulta de clientes.. consigo incluí-los e fazer o select para consulta, porém não consigo tratar o objeto retornado, alguem poderia me ajudar?
vou colocar abaixo o código fonte da classe / métodos / retorno
Classe:
<?php class cadastro_corretor { public $emp; public $cnpj; public $end_emp; public $nr_emp; public $compl_emp; public $bairro_emp; public $cep_emp; public $cid_emp; public $UF; public $ddd1; public $ddd2; public $ddd3; public $fone1; public $fone2; public $fone3; public $ctt1; public $ctt2; public $email1; public $email2; public $dt_nasc1; public $dt_nasc2; public $status; public $usr; /** * @return mixed */ public function getEmp() { return $this->emp; } /** * @param mixed $emp */ public function setEmp() { $this->emp =$_POST['emp']; return $this; } #Não vou postar o resto pq são umas 80 linhas a mais e nao vale a pena, o resto é igual
Abaixo os métodos:
<?php class ServiceDB_corretor { private $db1; private $cadastro_corretor; public function __construct(\\PDO $db1, cadastro_corretor $cadastro_corretor) { $this->db1 = $db1; $this->cadastro_corretor = $cadastro_corretor; } public function inserir() { $query = "insert into cd_clientes(emp, cnpj, end_emp, nr_emp, compl_emp, bairro_emp, cep_emp, cid_emp, UF, ddd1, ddd2, ddd3, fone1, fone2, fone3, ctt1, ctt2, email1, email2, dt_nasc1, dt_nasc2, status, usr) values(:emp, :cnpj, :end_emp, :nr_emp, :compl_emp, :bairro_emp, :cep_emp, :cid_emp, :UF, :ddd1, :ddd2, :ddd3, :fone1, :fone2, :fone3, :ctt1, :ctt2, :email1, :email2, :dt_nasc1, :dt_nasc2, :status,:usr)"; $stmt = $this->db1->prepare($query); $stmt->bindValue(':emp', $this->cadastro_corretor->getEmp()); $stmt->bindValue(':cnpj', $this->cadastro_corretor->getCnpj()); $stmt->bindValue(':end_emp', $this->cadastro_corretor->getEndEmp()); $stmt->bindValue(':nr_emp', $this->cadastro_corretor->getNrEmp()); $stmt->bindValue(':compl_emp', $this->cadastro_corretor->getComplEmp()); $stmt->bindValue(':bairro_emp', $this->cadastro_corretor->getBairroEmp()); $stmt->bindValue(':cep_emp', $this->cadastro_corretor->getCepEmp()); $stmt->bindValue(':cid_emp', $this->cadastro_corretor->getCidEmp()); $stmt->bindValue(':UF', $this->cadastro_corretor->getUF()); $stmt->bindValue(':ddd1', $this->cadastro_corretor->getDdd1()); $stmt->bindValue(':ddd2', $this->cadastro_corretor->getDdd2()); $stmt->bindValue(':ddd3', $this->cadastro_corretor->getDdd3()); $stmt->bindValue(':fone1', $this->cadastro_corretor->getFone1()); $stmt->bindValue(':fone2', $this->cadastro_corretor->getFone2()); $stmt->bindValue(':fone3', $this->cadastro_corretor->getFone3()); $stmt->bindValue(':ctt1', $this->cadastro_corretor->getCtt1()); $stmt->bindValue(':ctt2', $this->cadastro_corretor->getCtt2()); $stmt->bindValue(':email1', $this->cadastro_corretor->getEmail1()); $stmt->bindValue(':email2', $this->cadastro_corretor->getEmail2()); $stmt->bindValue(':dt_nasc1', $this->cadastro_corretor->getDtNasc1()); $stmt->bindValue(':dt_nasc2', $this->cadastro_corretor->getDtNasc2()); $stmt->bindValue(':status', $this->cadastro_corretor->getStatus()); $stmt->bindValue(':usr', $this->cadastro_corretor->getUsr()); $stmt->execute(); if($stmt->execute()) { return true; } } public function gerar_cd() { } public function consultar() { $query_consulta = "SELECT emp, cnpj, end_emp, nr_emp, compl_emp, bairro_emp, cep_emp, cid_emp, UF, ddd1, ddd2, ddd3, fone1, fone2, fone3, ctt1, ctt2, email1, email2, dt_nasc1, dt_nasc2, status, usr FROM cd_clientes inner join usuarios on cd_clientes.usr = usuarios.ID where emp = :emp or cnpj = :cnpj"; $stmt = $this->db1->prepare($query_consulta); $stmt->bindValue(':emp', $this->cadastro_corretor->getEmp()); $stmt->bindValue(':cnpj', $this->cadastro_corretor->getCnpj()); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); self::arrayToObject($result, $this->cadastro_corretor); echo "<pre>"; #print_r ($this->cadastro_corretor) . "<br><br>"; #print_r ($result); } public static function arrayToObject($source = [], &$destination) { foreach ($source as $key => $sourceProperty) { $name = $key; if (property_exists($destination, $name)) { if (is_array($source[$name]) && !empty($source[$name])) { self::arrayToObject($source[$name], $destination->{$name}); } else { if (gettype($source[$name]) === "object") { $value = (string) $source[$name]; } else { $value = $source[$name]; } $destination->{$name} = $value; } } } } }
Abaixo o retorno do objeto:
ServiceDB_corretor Object ( [db1:ServiceDB_corretor:private] => PDO Object ( ) [cadastro_corretor:ServiceDB_corretor:private] => cadastro_corretor Object ( [emp] => Nunes & Grossi [cnpj] => 11925725/0001-07 [end_emp] => Av Ana costa [nr_emp] => 374 [compl_emp] => 21 [bairro_emp] => Gonzaga [cep_emp] => 111111111 [cid_emp] => Santos [UF] => 26 [ddd1] => 13 [ddd2] => 13 [ddd3] => 13 [fone1] => 32810100 [fone2] => 32810100 [fone3] => 99688-5570 [ctt1] => Daniel Aquiles Lancellotti [ctt2] => lucas [email1] => daniel.lancellotti@nunesegrossi.com.br [email2] => lucas.mendes@live.com [dt_nasc1] => 2017-09-20 [dt_nasc2] => 2017-09-26 [status] => 2 [usr] => 1 ) )
Acima é o retorno de uma inclusão X que fiz no banco de dados.. eu preciso tratar esses dados para retorná-los num campo text do html da página de pesquisa
Podem me ajudar?
Daniel Lancellotti
Curtir tópico
+ 0
Responder
Post mais votado
Mais Posts
06/09/2017
Leonardo Xavier
Olá ja conseguiu resolver o seu problema?
eu particularmente, nunca usei códigos desta forma, utilizo sempre ajax pois tenho maior controle sobre toda requisição e posso fazer o que quiser com o retorno pois fica bem versátil, se você quiser posso fazer a mesma coisa que você esta fazendo ai com ajax.... mas vou precisar de sua tabela sql para isso. ai posso te dar um CRUD pronto com ajax. Se quiser só falar.
eu particularmente, nunca usei códigos desta forma, utilizo sempre ajax pois tenho maior controle sobre toda requisição e posso fazer o que quiser com o retorno pois fica bem versátil, se você quiser posso fazer a mesma coisa que você esta fazendo ai com ajax.... mas vou precisar de sua tabela sql para isso. ai posso te dar um CRUD pronto com ajax. Se quiser só falar.
Responder
06/09/2017
Daniel Lancellotti
cara, eu aceito, me manda um email para que possa te passar
daniel.lancellotti@gmail.com
Eu consegui resolver uma parte, estava com problema de propriedade pública, mas mesmo assim não consigo inserir nos inputs.
daniel.lancellotti@gmail.com
Eu consegui resolver uma parte, estava com problema de propriedade pública, mas mesmo assim não consigo inserir nos inputs.
Responder
Clique aqui para fazer login e interagir na Comunidade :)