Oi Guilherme, tudo bom?
Vamos dar uma olhada nos códigos da aula 5:
function listaProdutos($conexao) {
$produtos = array(); // aqui criamos um array vazio
$resultado = mysqli_query($conexao, "select * from produtos"); // aqui selecionamos todos os produtos do nosso banco
while($produto = mysqli_fetch_assoc($resultado)) { // aqui dizemos que enquanto houver produtos no nosso resultado realizaremos a logica a seguir
array_push($produtos, $produto); // finalmente colocamos nosso produto dentro do array de produtos
}
Como você mesmo comentou, o fetch_assoc realmente retorna um array. Mas é um array que representa nosso produto. Ou seja, no array temos as chaves nome,preço,etc... e para cada chave um valor que veio do banco de dados =)
Por isso precisamos do array de produtos, para guardar cada produto dentro dele.
Assim, com um array de produtos em mão, podemos lá na nossa página imprimir um por um certinho:
<?php
foreach($produtos as $produto) : // para cada produto dentro do nosso array de produtos geramos o código abaixo
?>
<tr>
<td><?= $produto['nome'] ?></td> //imprime uma linha com o valor de nome
<td><?= $produto['preco'] ?></td> // imprime uma linha com o valor de preco
</tr>
<?php
endforeach // acaba o nosso laço de repetição
?>
Repare que ficou bem simples imprimir tudo. Com um while, precisariamos de um contador para passar por todos os elementos do array e verificar quantos produtos tem dentro dele. Seria muito mais trabalhoso!
Qualquer dificuldade, compartilhe com a gente =)