Opa, desculpa a demora para responder, estava entretido com as festas natalinas. Bora lá.
esse é o meu listar-produtos.php:
<?php include('cabecalho.php');
include('conecta.php');
include('banco-produtos.php');
if(array_key_exists('deletado', $_GET) && $_GET['deletado'] == true){ ?>
<p class="alert-success">
Produto apagado com sucesso.
</p>
<?php
}
?>
<table class="table table-striped table-bordered ">
<?php
$produtos = listarProdutos($conexao);
mysqli_close($conexao);
foreach ($produtos as $produto) :
?>
<tr>
<td><?= $produto['nome'] ?></td>
<td><?= $produto['preco'] ?></td>
<td><?= substr($produto['descricao'], 0, 40)?></td>
<td><?= $produto['categoria_nome']?></td>
<td>
<form action="produto-altera-pormulario.php" method="post">
<input type="hidden" name="id" value="<?=$produto['id']?>" />
<button class="btn btn-primary">Alterar</button>
</form>
</td>
<td>
<form action="apaga-produto.php" method="post">
<input type="hidden" name="id" value="<?=$produto['id']?>" />
<button class="btn btn-danger">Apagar</button>
</form>
</td>
</tr>
<?php
endforeach
?>
</table>
<?php include('rodape.php') ?>
e minha função listarProdutos($conexao):
function listarProdutos($conexao){
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id");
$produto = mysqli_fetch_assoc($resultado);
while($produto = mysqli_fetch_assoc($resultado)){
array_push($produtos, $produto);
};
return $produtos;
}
Até ai a unica diferença é que eu utilizei o método post
no lugar do get
para passar alterar o produto.
Eu farei uma mudanças para utilizar o método get
, assim será possível visualizar melhor o erro no site.
Okay, no site Minha Loja da pra visualizar o erro, na lista não da pra ver, mas se acessarem o http://minhalojabnm.esy.es/produto-altera-pormulario.php?id=1, será possível ver o item que não está aparecendo.
Eu percebi que esse é um comportamento que está acontecendo na minha base também.