Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!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.
>
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;**>
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
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.