Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

o que o resultado esta fazendo ?

function listaProdutos($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");

while ($produto_array = mysqli_fetch_assoc($resultado)) {

$categoria = new Categoria(); $categoria->nome = $produto_array['categoria_nome'];

$produto = new Produto(); $produto->id = $produto_array['id'];

// agora é com você!

array_push($produtos, $produto); }

return $produtos; }

A parte do $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");

eu não consegui entender direito, tem como me explicar de alguma maneira mais clara !?

1 resposta
solução!

Se você se refere ao SELECT, lembre-se que na tabela Produtos, só existe o atributo categoria_id, e não o categoria_nome. Dessa forma se faz necessário utilizar o INNER JOIN para pegar todos os atributos do Produto (p.*) e pegar o nome da categoria referente ao Produto (c.nome as categoria_nome). Você também pode pesquisar sobre "SQL JOINS" se quiser se aprofundar mais.