Ir ao conteúdo
  • Cadastre-se

PHP Mostrar nome ao invés do Id


Posts recomendados

Como retornar o nome da categoria do meu blog?
Quando eu coloco <?php echo $linhas['categoria_id']; ?>, aparece o id da categoria.

Mas quando eu coloco <?php echo $linhas['categoria']; ?>, aparece o seguinte erro: 
NOTICE: UNDEFINED INDEX: CATEGORIA IN C:\XAMPP\HTDOCS\BLOG\INDEX.PHP ON LINE 259.

Meu banco de dados possui duas tabelas:
Posts                            Categorias

id                                          id

titulo_principal                   categoria

data

descricao

categoria_id

 

 

Meu select está assim:

SELECT a.id, data, descricao, b.categoria, texto_inicial, texto_secundario, titulo_principal, imagem1, imagem1_dir, imagem2, imagem2_dir FROM `posts` as a inner join categorias as b on a.categoria_id = b.id";

Alguém pode me ajudar como fazer para aparecer o nome da categoria ao invés do Id?
Obrigada.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Beorlegui Por onde é o seu sistema?  worpress? 

Aparentemente, o erro é de índice inexistente. 

 

Eu particularmente, faço sempre minhas instruções SQL de forma completa para evitar erros e inconsistências.

Certifique-se de que o índice referente à chave estrangeira existe na tabela posts.

Link para o comentário
Compartilhar em outros sites

@DiF Olá.
Eu não mexo com wordpress.
Estou usando o xampp (nem sei se o wordpress usa o xampp).

Eu não sei se o meu select está certo. Mas na minha tabela posts possui os seguintes campos (id, data, descricao, categoria_id, texto_inicial, texto_secundario, titulo_principal, imagem1, imagem1_dir, imagem2, imagem2_dir).
O erro que mostra, se refere somente a UNDEFINED INDEX: CATEGORIA.
Na foto que mandei, mostra o id normalmente, mas quando eu coloco <?php echo $linhas['categoria']; ?> é que dá o erro. Acho que estou errando em alguma coisa no select talvez, mas não sei exatamente onde.

FOTO.png

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Beorlegui 

O erro de undedined index indica que não há valor algum nessa variável. 

Acredito que o problema esteja no SQL mesmo como eu havia dito.

 

Você tem que testar a instrução SQL direto no phpmyadmin e ver o que retorna.

 

O categoria_id da tabela posts é uma chave estrangeira. ele precisa ser do tipo INT e ter o índice dele na tabela.

 

Você quer trazer o nome da categoria, o titulo do post, a data e a descrição certo?

 

SELECT Posts.titulo_principal, 
       Posts.data, 
       Posts.descricao,
       Categorias.categoria
FROM Posts
INNER JOIN Categorias ON Categorias.id = Posts.categoria_id

Deste jeito é a forma "completa" onde é indicado a tabela e o campo.

 

Se tiver o relacionamento  1:N e ter o índice correto, vai funcionar.

Senão, recomendo que veja este vídeo na qual ensino como fazer relacionamentos de tabelas no phpmyadmin.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...