Listar em PHP

3 respostas Resolvido
programaçãowebphp
G

Galera, tenho uma lista de usuários cadastrados e quero exibir na página, mas quando vou executar ele diz que a variável $listarUsuario não existe e também quando faço var_dump na variável ela vem vazia. Alguém poderia me apontar o erro? Estou a dois dias tentando achar e não consigo.

Função do banco:

function lista_usuarios(){

$consulta = $this->conexao->prepare(‘SELECT * FROM usuario’)->fetchAll();

return $consulta;

}

Execução do PHP:

$repo = new RepositorioUsuarios;

$listarUsuario = $repo->lista_usuarios();
//var_dump($listarUsuario);

if($_SERVER[‘REQUEST_METHOD’] == “POST”){

//pega dados do formulário

$usuario = [

‘nome’ => $_POST[‘nome’],

‘cidade’ => $_POST[‘cidade’],

‘senha’ => $_POST[‘senha’],

];
$resultado = $repo->criarUsuario($usuario);
//verifica retorno do banco
if($resultado == null){
    echo 'Usuário não cadastrado.';
} else {
    echo 'Usuário cadastrado com sucesso.';
}

}

require_once DIR . ‘/…/interface/inicial.php’;

Exibindo na página:

    <?php foreach($listarUsuario as $lista){ ?>
  1. <?= $lista['nome'] . ' | ' . $lista['cidade'] ?>
  2. <?php } ?>

3 Respostas

joeythai

No início do seu arquivo digita:

ini_set(‘display_errors’,‘on’);
error_reporting(E_ALL);

e depois da consulta da um or die();// para que ele pegue os erros referentes ao mysql

rodevops
Solucao aceita

Imagino que você está usando PDO certo? Nesse caso essa linha…

$consulta = $this->conexao->prepare('SELECT * FROM usuario')->fetchAll();

Você precisa executar um passo antes de listar tudo…

$consulta = $this->conexao->prepare('SELECT * FROM usuario');
$contulta->execute();
return $consulta->fetchAll();

Isso quando se usa o método prepare… agora se usar o método query…

$consulta = $this->conexao->query('SELECT * FROM usuario')->fetchAll();
G

Este era o problema, acabei levando para meu professor da pós graduação e ele disse o mesmo, valeu pela ajuda!

Criado 29 de junho de 2017
Ultima resposta 9 de jul. de 2017
Respostas 3
Participantes 3