Jump to content
Perroni91

Post mostra, mas categoria não

Recommended Posts

Meu blog está mostrando o post normalmente, menos a parte da categoria. Não sei mais o que fazer para arrumar esse problema. Alguém poderia me dar uma forcinha por favor?

$resultado = mysql_query($consulta, $conn) or die(mysqli_error());
$linhas = mysql_fetch_assoc($resultado);

 

Abaixo mostra a parte do código:

<?php do { ?>
                            <div class="post post-row">
                                <a class="post-img" href="blog-post.html"><img src="Admin/app/webroot/files/post/imagem1/<?php echo $linhas['imagem1_dir']; ?>/<?php echo $linhas['imagem1']; ?>"></a>
                                <div class="post-body">
                                    <div class="post-meta">
                                        <a class="post-category" href="category.html"><?php echo $linhas['categoria']; ?></a>
                                        <span class="post-date"><?php echo utf8_encode($linhas['data']); ?></span>
                                    </div>
                                    <h3 class="post-title"><a href="blog-post.html"><?php echo utf8_encode($linhas['titulo_principal']); ?></a></h3>
                                    <p><?php echo utf8_encode($linhas['texto_inicial']); ?></p>
                                </div>

                            </div>
                            <?php } while ($linhas = mysql_fetch_assoc($resultado)); ?>
                        </div>

Mas apenas essa parte não mostra, que é justamente a categoria: 

<a class="post-category" href="category.html"><?php echo $linhas['categoria']; ?></a>

 

Minhas duas tabelas no banco de dados estão assim:

Posts                                                                   Categorias

id                                                                                  id
titulo_principal                                                categoria
imagem

 

Alguém que possa me ajudar? Obrigada!

Share this post


Link to post
Share on other sites

Boa tarde Perroni,

Sempre que você tiver problemas com alguma variável, como é o seu caso com a variável $linhas, recomendo que você utilize a função var_dump ou var_export para "debugar" (buscar solução do problema). Aparentemente a sua variável $linhas é um array que não possui a chave 'categoria', portanto nada é exibido nessa parte da tela.

Provisoriamente, substitua o trecho echo $linhas['categoria']; por var_dump($linhas); e veja se realmente existe a chave 'categoria' dentro desse array.

Se quiser, pode postar o resultado do var_dump aqui no fórum caso julgue necessário.

Share this post


Link to post
Share on other sites

1. falta relacionar as tabelas, por exemplo você pode criar a coluna categoria na tabela posts onde você ira armazenar o id da categoria;
2. depois na instrução SQL você deverá citar as tabelas e a relação entre elas (pode usar join ou "where").
veja mais detalhes aqui:
relacionando tabelas em bancos de dados
3. funções mysql* estão obsoletas; use mysqli ou PDO.

Share this post


Link to post
Share on other sites
Em 12/03/2019 at 13:18, abraaoz disse:

Boa tarde Perroni,

Sempre que você tiver problemas com alguma variável, como é o seu caso com a variável $linhas, recomendo que você utilize a função var_dump ou var_export para "debugar" (buscar solução do problema). Aparentemente a sua variável $linhas é um array que não possui a chave 'categoria', portanto nada é exibido nessa parte da tela.

Provisoriamente, substitua o trecho echo $linhas['categoria']; por var_dump($linhas); e veja se realmente existe a chave 'categoria' dentro desse array.

Se quiser, pode postar o resultado do var_dump aqui no fórum caso julgue necessário.

Eu fiz do jeito que você falou e apareceu esse erro:

ARRAY(13) { ["ID"]=> STRING(1) "2" ["IMAGEM1"]=> STRING(8) "CSS1.JPG" ["IMAGEM1_DIR"]=> STRING(1) "2" ["CATEGORIA_ID"]=> STRING(1) "0" ["DATA"]=> STRING(23) "13 DE FEVEREIRO DE 2019" ["TITULO_PRINCIPAL"]=> STRING(21) "PARA QU� SERVE O CSS?" ["DESCRICAO"]=> STRING(25) "PORQUE PRECISAMOS DO CSS?" ["TEXTO_INICIAL"]=> STRING(12) "SDGSGSGSFGSS" ["IMAGEM2"]=> STRING(8) "CSS2.JPG" ["IMAGEM2_DIR"]=> STRING(1) "2" ["TEXTO_SECUNDARIO"]=> STRING(17) "HDGHDFGHFGHNBVNVG" ["CREATED"]=> STRING(19) "2019-02-13 18:30:12" ["MODIFIED"]=> STRING(19) "2019-02-13 18:30:12" }

Não entendi muito esse erro.


Mas eu acho que preciso refazer a pergunta, eu consigo mostrar o id da categoria, mas não o nome. Como faria para mostrar o nome ao invés do Id?

Meu select é esse abaixo:
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
WHERE a.categoria_id =".$categoria_id;

Share this post


Link to post
Share on other sites
Em 12/03/2019 at 14:43, Fernando C disse:

1. falta relacionar as tabelas, por exemplo você pode criar a coluna categoria na tabela posts onde você ira armazenar o id da categoria;
2. depois na instrução SQL você deverá citar as tabelas e a relação entre elas (pode usar join ou "where").
veja mais detalhes aqui:
relacionando tabelas em bancos de dados
3. funções mysql* estão obsoletas; use mysqli ou PDO.

Eu fiz a relação entre as tabelas, não sei se está certo porque o post aparece normal (as fotos, o título, a data... menos a categoria.):

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
WHERE a.categoria_id =".$categoria_id

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Sapinn
      Opa galera tudo beleza? Então meu banco está me retomando um erro quando tento inserir nele que é "Dados truncados na coluna valor_produto" essa coluna era do tipo Double quando eu mudei para ela para TEXT funcionou os dados foram inseridos mas eu preciso que ela seja do tipo double. Alguém sabe como resolver????
    • By k9studio
      Olá Amigos,
      se alguem puder dar um help fico muito grato
      seguinte:
      estou criando um sistema de login com cookie
      todas as paginas fica no patch
      www/htdocs/script/
      quando logar no dominio.com.br liberar o acesso no  cliente.dominio.com.br tambem
      acesso:dominio.com.br
      ou
      quando logar no cliente.dominio.com.br liberar o acesso no dominio.com.br tambem
      acesso:cliente.dominio.com.br
      e guando deslogar quebrar conxao com os dois
      existe uma maneira de fazer isso?
       
    • By Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
    • By Kefatif
      Prezados boa tarde.
       
      Preciso bloquear a edição de um date input de forma que só seja possível selecionar a data através do calendário.
       
      Alguém pode me ajudar?
       
      Utilizo php, html e js.
       
      <input type="date" value="<?php echo $data ?>" name="datacoleta" class="form-control" required style="width:100%;">  
      Agradeço desde já.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.