Variable losing value in php

0

I have the following problem. I have a list of records with name, age and telephone for example. In each record I have a button to view all the information in that record.

When I click this button it takes the user to a next screen that we will call "View Data". When I take the user to this screen I will send the ID of this register so I can search for other data.

On the "Data View" page I have following code:

<?php  

//Identifica se houve post para a página atual
if (isset($_POST["btnVisualizarPaciente"]) == "btnVisualizarPaciente") {

    //Faz requisição do arquivo de classe que realiza a busca dos dados
    require_once("class/class_load.php");
    $classeLoad = new VisualizarDados();
    $request = $classeLoad->requestDados();

}

?>

//HTML para apresentar os dados da busca
<div>Nome: <?php echo $nome; ?></div>
<div>Idade: <?php echo $idade; ?></div>
<div>Telefone: <?php echo $telefone; ?></div>
<div>Endereço: <?php echo $endereco; ?></div>

In the php class file I have the following code

    class VisualizarDados {

    public function requestDados() {

        $idBusca = $_POST['idBusca'];

        require_once("inc/database.php");
        //SQL Carrega os dados pessoais do paciente
        $selectDados = $pdo->prepare(" SELECT * FROM tb_cadastros_sistema WHERE id = :idBusca");
        $selectDados->bindParam(':idBusca', $idBusca);
        $selectDados->execute();

        if ($resultDados = $selectDados->fetch(PDO::FETCH_ASSOC)) {

            $nome = $resultDados['nome'];
            $idade = $resultDados['idade'];
            $telefone = $resultDados['telefone'];
            $endereco = $resultDados['endereco'];

        }else{
            print "Erro ao carregar os dados, por favor contate o suporte";
        }

    }
}

The code I use to fetch data works fine, but it does not display search values on the "View Data" page. It has an undefined variable error.

    
asked by anonymous 15.02.2018 / 19:38

2 answers

1

The problem is that you are not returning or storing the data in a variable that you can access later.

You can change your "DisplayData" class to:

<?php

class VisualizarDados {

    private $nome;
    private $idade;
    private $telefone;
    private $endereco;

    public function requestDados() {

        $idBusca = $_POST['idBusca'];

        require_once("inc/database.php");
        //SQL Carrega os dados pessoais do paciente
        $selectDados = $pdo->prepare(" SELECT * FROM tb_cadastros_sistema WHERE id = :idBusca");
        $selectDados->bindParam(':idBusca', $idBusca);
        $selectDados->execute();

        if ($resultDados = $selectDados->fetch(PDO::FETCH_ASSOC)) {

            /* Armazena os valores nas propriedades globais (da classe) */
            $ths->nome = $resultDados['nome'];
            $ths->idade = $resultDados['idade'];
            $ths->telefone = $resultDados['telefone'];
            $ths->endereco = $resultDados['endereco'];

        }else{
            print "Erro ao carregar os dados, por favor contate o suporte";
        }
    }

    /* Retorna os valores armazenados */
    public function getName() {
        return $this->nome;
    }

    public function getOldYear() {
        return $this->idade;
    }

    public function getPhone() {
        return $this->telefone;
    }

    public function getAddress() {
        return $this->endereco;
    }
}

This way you can capture the values by accessing $variavel->getProperty() . Ex:

<?php  

    //Identifica se houve post para a página atual
    if (isset($_POST["btnVisualizarPaciente"]) == "btnVisualizarPaciente") {

        //Faz requisição do arquivo de classe que realiza a busca dos dados
        require_once("class/class_load.php");
        $classeLoad = new VisualizarDados();
        $classeLoad->requestDados();
    ?>

    //HTML para apresentar os dados da busca
    <div>Nome: <?php echo $classeLoad->getName(); ?></div>
    <div>Idade: <?php echo $classeLoad->getOldYear(); ?></div>
    <div>Telefone: <?php echo $classeLoad->getPhone(); ?></div>
    <div>Endereço: <?php echo $classeLoad->getAddress(); ?></div>
<?php } ?>
    
15.02.2018 / 20:24
0
            class VisualizarDados {

        public function requestDados() {
            $idBusca = $_POST['idBusca'];
            require_once("inc/database.php");
            //SQL Carrega os dados pessoais do paciente
            $selectDados = $pdo->prepare(" SELECT * FROM tb_cadastros_sistema WHERE id = :idBusca");
            $selectDados->bindParam(':idBusca', $idBusca);
            $selectDados->execute();

            if ($resultDados = $selectDados->fetch(PDO::FETCH_ASSOC)) {
                $dados = $resultDados;
            }else{
                $dados =  "Erro ao carregar os dados, por favor contate o suporte";
            }
 return $dados;
        }

    }
    
15.02.2018 / 19:53