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:

<?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

Daniel Lancellotti

Responder

Post mais votado

06/09/2017

blz vou te ajudar nessa...

Leonardo Xavier

Leonardo Xavier
Responder

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.
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.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar