Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato Duarte

[Resolvido] Como exibir resultado de consultas como links

Recommended Posts

Preciso de ajuda de vocês novamente... é que estou fazendo um sistema de gerenciamento de notícias. Já tenho a parte de inserção, edição e exclusão das notícias. Tudo muito ‘amador’, mas funcionando bem.

Agora, preciso mostrar na página index.php alguns títulos dessas notícias (que já estão armazenadas no MySQL) em forma de link para que quando o leitor clicar sobre o título, seja aberta a notícia correspondente.

Imagino algo como http://nome_do_site.com/index.php?codigo=10, ou seja, cada link tem um código referente à notícia, só que não sei como fazer isso.

Até aprendei a usar query string, mas nesse caso não sei nem a lógica disso.

 

Por favor, conto com ajuda de vocês. Muito obrigado.

 

O código que mostra a lista de notícia é este:

 

CODE
<?php

mysql_connect('localhost', 'renato_duarte', 'renato');

mysql_select_db('noticias');

$consulta = 'select titulo from noticias';

$resultado = mysql_query($consulta);

while ($registro = mysql_fetch_array($resultado))

{

echo $registro['titulo'] . '<br>';

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim no echo dentyro do qhilw:

echo "<a href=\"noticia.php?id=" . $registro['id'] . "\">" . $registro['titulo'] . "</a><br />";

Depois, no noticia.php, você faz assim:

$id_noticia = isset($_GET['id']) ? (int)$_GET['id'] : 1;

// Use $id_noticia na SQL, para buscar as informações da notícia selecionada

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer a parte do index. php, onde tem o link. Funcionou normal, pegando o código da notícia certinho. O link ficou assim:

 

CODE

Acho que é isso mesmo. A linha do echo ficou como você disse:

CODE

<?php

mysql_connect('localhost', 'renato_duarte', 'renato');

mysql_select_db('noticias');

$consulta = 'select * from noticias';

$resultado = mysql_query($consulta);

while ($registro = mysql_fetch_array($resultado))

{

echo "<a href=\"noticias.php?codigo=" . $registro['codigo'] . "\">" . $registro['titulo'] . "</a><br />";

}

?>

 

Agora o problema é na página que mostra as notícias chamadas pelo link.

 

O código é esse:

CODE
<?php

$codigo_noticia = isset($_GET['codigo']) ? (int)$_GET['codigo'] : 1;

mysql_connect('localhost', 'renato_duarte', 'renato');

mysql_select_db('noticias');

$consulta = 'select * from noticias where codigo= ". $codigo_noticia ."';

$resultado = mysql_query($consulta);

if ($registro = mysql_fetch_array($resultado))

{

echo $registro['titulo'] . ' - ';

echo $registro['data'] . '<br><br>';

echo $registro['texto'];

}

?>

 

Ele está sendo executado normalmente, sem mostrar erros, mas também não mostra o conteúdo, que é o que interessa.

Se puder continuar me ajudando, eu agradeço imensamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja a linha em que você cri a variável $consulta. Você está usando aspas diferentes, fazendo com que o MySQL procure pelos registros ". [num] .", com ponto e aspas. Faça assim:

$consulta = 'select * from noticias where codigo= '. $codigo_noticia;

Veja se isso resolve o problema. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja a linha em que você cri a variável $consulta. Você está usando aspas diferentes, fazendo com que o MySQL procure pelos registros ". [num] .", com ponto e aspas. Faça assim:

$consulta = 'select * from noticias where codigo= '. $codigo_noticia;

Veja se isso resolve o problema. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]s

Beraldo

 

 

Show de bola... resolveu o problema mesmo.

 

Muito obrigado. Deus abençoe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.