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

Exibir categoria com conteúdo.

Olá! Estava fazendo o curso de PHP recentemente e não consegui pegar a noção da junção da exibição da categoria com o conteúdo com o select.

Na aula na hora q ele foi mostrar a categoria, mostrou a ID, mas ele mexeu no select e converteu para mostrar o nome da categoria e foi isso que não entendi. Não teria outra forma de fazer?

$resultado = mysqli_query($conexao,"select p.*, c.nome as categoria_nome from produtos as p join categorias as c on p.categoria_id = c.id");
4 respostas

Oi Charles, tudo bem ?

Acredito que talvez faça sentido você dar uma olhadinha nos nossos cursos de banco de dados, mysql, por exemplo. Que ai o cenário ficaria mais simples e o entendimento melhor.

solução!

Concordo plenamento com Matheus, seu problema aqui é Banco de Dados, você deve dar um estuda nesses cursos tambem.

Porém respondendo pontualmente tua pergunta a query executada é a seguinte (Formatada)

select
    p.*
    , c.nome as categoria_nome
from 
    produtos as p
join
    categorias as c
    on p.categoria_id = c.id

Podemos ver que o select esta sendo feito em

 c.nome as categoria_nome

Logo abaixo vemos que a tabela de categorias é chamada de c

categorias as c

Logo para selecionarmos todos os campos da tabela categoria deveriamos modificar a query para

select
    p.*
    , c.*
from 
    produtos as p
join
    categorias as c
    on p.categoria_id = c.id

Destacando

c.*

O asterisco significa todas as colunas.

So que se fizer isso no teu codigo vais ter que modifica-lo para receber todas as colunas da query e não so mais a coluna nome dela.

Espero ter ajudado.

Acho que consegui, eu estava querendo fazer de uma forma diferente eu fiz um teste e deu certo, mas não sei se é uma boa prática.

Na tabela categorias a primeira coluna estava como nome, então resolvi renomear para outro nome pra diferenciar da tabela principal e chamei.

$resultado = mysqli_query($conexao,"select * from produtos join categorias on produtos.categoria_id = categoria_id;");

Mas obrigado pela informação e dica.