1
resposta

Como usar a função while() corretamente para listar dados com conexão PDO?

Estou aprendendo a usar conexão usando PDO e me deparei com uma dúvida. Vejam bem, tenho o seguinte código que, até então, está funcionando corretamente, porém não consigo listar em uma tabela, por exemplo, os dados em questão usando a função while() . Poderiam me ajudar? Desde já agradeço.


 //Buscar Marcações de um paciente em específico
    public function buscarMarcacoesPaciente($CD_Paciente){
        global $conexao;
        $sql = "SELECT * FROM `marcacao` WHERE `CD_Paciente` = ?";
        $statement = $conexao->prepare($sql);
        $statement->bindValue(1, $CD_Paciente);
        $statement->execute();
        $dadosMarcacao = $statement->fetchAll(PDO::FETCH_ASSOC);
        return $dadosMarcacao;
    }
1 resposta

Você pode listar os dados utilizando foreach, como no exemplo abaixo.

foreach ($dadosMarcacao as $marcacao) {
    echo "ID: " . $marcacao['ID'] . "<br>";
    echo "CD_Paciente: " . $marcacao['CD_Paciente'] . "<br>";
    echo "data_marcacao: " . $marcacao['data_marcacao'] . "<br>";
}

Mas se ainda quiser fazer algo apenas com while, você usar a abordagem abaixo:

while ($marcacao = current($dadosMarcacao)) {
        echo "ID: " . $marcacao['ID'] . "<br>";
        echo "CD_Paciente: " . $marcacao['CD_Paciente'] . "<br>";
        echo "data_marcacao: " . $marcacao['data_marcacao'] . "<br>";
        // ... outras colunas

        echo "<hr>"; // Separação entre registros

        next($dadosMarcacao); // Move o ponteiro do array para o próximo elemento
    }