Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Array esta vindo vazio, não sei o pq?

<?php require_once 'global.php';?>
<?php
    try {

        $lista = Produto::listar();
        echo '<pre>';
        print_r($lista);
        echo '</pre>';
        exit;

    } catch (Exception $e) {
        Erro::trataErro($e);
    }
?>
<?php require_once 'cabecalho.php' ?>
<div class="row">
    <div class="col-md-12">
        <h2>Produtos</h2>
    </div>
</div>

<div class="row">
    <div class="col-md-4">
        <a href="produtos-criar.php" class="btn btn-info btn-block">Criar Novo Produto</a>
    </div>
</div>

<div class="row">
    <div class="col-md-12">
        <table class="table">
            <thead>
            <tr>
                <th>Id</th>
                <th>Nome</th>
                <th>Preço</th>
                <th>Quantidade</th>
                <th>Categoria</th>
                <th class="acao">Editar</th>
                <th class="acao">Excluir</th>
            </tr>
            </thead>
            <tbody>
                <?php foreach($lista as $linha) :?>
                <tr>
                    <td><?php echo $linha['id'] ?></td>
                    <td><?php echo $linha['nome'] ?></td>
                    <td>R$ <?php echo $linha['preco']?></td>
                    <td><?php echo $linha['quantidade'] ?></td>
                    <td><?php echo $linha['categoria_id']?></td>
                    <td><a href="/produtos-editar.php" class="btn btn-info">Editar</a></td>
                    <td><a href="#" class="btn btn-danger">Excluir</a></td>
                </tr>
            <?php endforeach ?>
            </tbody>
        </table>
    </div>
</div>
<?php require_once 'rodape.php' ?>
4 respostas

Luiz, boa tarde!

Você poderia nos mostrar a implementação da função listar(), assim podemos ver o que está dando errado.

Aguardo sua resposta e bons estudos!

<?php

class Produto
{
    public $id;
    public $nome;
    public $preco;
    public $quantidade;
    public $categoria_id;

    public static function listar()
    {
        $query = "SELECT id, nome, preco, quantidade, categoria_id FROM produtos";
        $conexao = Conexao::getconnection();
        $resultado = $conexao->query($query);
        $lista = $resultado->fetchAll();
        return $lista;
    }
}

Luiz, boa tarde!

Se você rodar a query

SELECT id, nome, preco, quantidade, categoria_id FROM produtos

Você recebe algum retorno? Me parece que está tudo certo

Aguardo sua resposta e bons estudos!

solução!

Fala, Luiz. Como esse tópico já tem 1 mês, eu suponho que você tenha resolvido sua questão, mas eu fiquei intrigado aqui:

Porque sua classe chamada Produto:

  1. Acessa o banco de dados, visto que um produto na vida real não trata de persistência?
  2. Você pega a conexão com o banco dentro do método listar ao invés de injetar a conexão como dependência?
  3. Tem uma classe (com todos os atributos públicos, diga-se de passagem) mas retorna uma lista de arrays associativos?