Ir para conteúdo
Fórum Script Brasil
  • 0

Mostrar notícia desejada


ReDNoS

Pergunta

Olá pessoal, eu estou fazendo um sistema de notícias pelo Banco de Dados.

Meu códio no site em PHP é esse:

<?PHP 
    $pesquisa = mysql_query ("SELECT * FROM gbnews ORDER BY id DESC");
$linhas = mysql_num_rows ($pesquisa);

while ($x = mysql_fetch_array ($pesquisa)) {
$date = $x["Date"];
$Title = $x["Title"];
echo "<tr>
<td background=\"template/gb-extreme/images/t_01.gif\"></td>
<td background=\"template/gb-extreme/images/t_02.gif\"><font color=\"#00000000\"><b>$date: </b>$Title</font></td>
<td background=\"template/gb-extreme/images/t_03.gif\"></td>
</tr>";
echo "<br><br>";
}

?>

Esse códio mostra o Título da notícia e a data em que ela foi adicionada. No comando $Title tem o título, aonde eu coloco uma Tag <a href> para direcionar para a notícia completa, pois é, eis o meu problema, preciso direcionar para a notícia desejada mostrando o $Title, %Date e %Text da notícia.

Eu não consigo de jeito nenhum, o máximo que consegui foi mostrar todas as notícias, porém eu quero apenas mostrar a notícia onde $Id = ao Id da notícia que foi aberto.

Se alguém souber como ajudar, por favor não se acude em me ajudar :rolleyes:

OBS: eu gostaria de utilizar apenas um notice.php aonde será mostrado as notícias completas de acordo com a notícia que o usuário abrir no código acima. Seria muit chato ter de fazer uma página para cada notícia...

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
Dê uma lida neste tópico:

http://scriptbrasil.com.br/forum/index.php?showtopic=115333

A dúvida é a mesma.

Eu li o tópico, tentei adaptar para o meu, e agora ele está dando o mesmo erro do cara, quando clico no link ele mostra a notícia de Id=1 em todas as notícias, e quando coloco ("Select * FROM gbnews WHERE Id=$id"); ele não mostra nada ao clicar no link para ir para a notícia.

Os links das notícias estão com a tag <a href=noticia.php?id=X> (X = ao número do Id) e o código noticia.php, onde aparece as notícias está assim:

<?php 
    $id = $_GET["Id"];
    $resultado = mysql_query("SELECT * FROM gbnews WHERE Id=$Id");
     {
        $registro=mysql_fetch_row($resultado);
        //echo "<span class='txt'>Id: $registro[0]<br></span>";// O 'Id' está oculto aqui na posiçao '0' do array
        $id=$registro[0];// armazeno o valor da posicao '0' na varialvel '$id'
        //$registro[1] - data
        //$registro[2] - titulo
        //$registro[3] - texto
    }
echo  "
<table width='550' border='0' cellpadding='0' cellspacing='0'>
        <tr>
            <td height='20'></td>
        </tr>
          <tr>
            <td height='30' class='dataInt' valign='top'>» $registro[1]</td>
          </tr>
          <tr>
            <td height='20' class='titulo_az2'><div align='justify'>$registro[2]</div></td>
          </tr>
          <tr><td height='15'></td></tr>
          <tr>
            <td height='20' class='txtInt'>$registro[3]</td>
          </tr>
          <tr>
              <td height='50'></td>
          </tr>
          <tr>
              <td align='left'><a href='central_noticia.php' class='mais_not' target='_top'>» Ler outras noticias</a></td>
          </tr>
          <tr>
              <td height='90'></td>
          </tr>
        </table>
";            
?>

O que está errado?

Link para o comentário
Compartilhar em outros sites

  • 0

Ele não mostra nada por causa dessas linhas:

<?php
    $id = $_GET["Id"];
    $resultado = mysql_query("SELECT * FROM gbnews WHERE Id=$Id");
    .....
Você atribui um valor para $id mas manda procurar por $Id. No PHP as variáveis são case sensitive, ou seja, sensíveis ao caso (maiúscula / minúscula). Tente deixar o código da seguinte maneira:
<?php
    $Id = $_GET["Id"];
    $resultado = mysql_query("SELECT * FROM gbnews WHERE Id=$Id");
    .....

Isso deverá funconar.

Link para o comentário
Compartilhar em outros sites

  • 0
Ele não mostra nada por causa dessas linhas:

<?php
    $id = $_GET["Id"];
    $resultado = mysql_query("SELECT * FROM gbnews WHERE Id=$Id");
    .....
Você atribui um valor para $id mas manda procurar por $Id. No PHP as variáveis são case sensitive, ou seja, sensíveis ao caso (maiúscula / minúscula). Tente deixar o código da seguinte maneira:
<?php
    $Id = $_GET["Id"];
    $resultado = mysql_query("SELECT * FROM gbnews WHERE Id=$Id");
    .....
Isso deverá funconar.
Cara, não deu certo! E olha que eu coloquei todos os "Id´s" com I maísculos igual está no meu banco de dados, e mesmo assim não foi... Se eu retiro o "WHERE Id = $Id", os meus links mostram a notícia de Id = 0, se eu coloco o "WHERE Id = $Id", meus links não mostram nada... o que mais pode ser? Quando eu faço
$resultado = mysql_query("SELECT * FROM gbnews WHERE Id=2");

ele me mostra certinho as informações da notícia com Id=2...

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

  • 0
Ah, outra coisa que me esquecí...

No seu endereço, o ID está tudo em minúsculo, então mude a linha:

$Id = $_GET["Id"];
Para:
$Id = $_GET["id"];
Mas quando mudei a linha para
$Id = $_GET["Id"];
também mudei o meu link com o Id com I maiúsculo.
<a href=noticia.php?Id=1>

E mesmo assim, ao clicar no link, ele não mostra nenhuma informação da notícia...

Link para o comentário
Compartilhar em outros sites

  • 0

<a href="link.php?id=__Nº da Noticia__">Noticia tal</a>
$id = $_GET["id"];
$resultado = mysql_query("SELECT * FROM gbnews WHERE id=$id");

//Por via das duvidas depura sua query também.
echo "<script>alert($resultado);</script>";

Impossivel não funcionar amigo.. a não ser que o problema esteja em outra parte do arquivo.

olha sua como ficou sua query no alert também.

Usa tudo em minuscula!

valeu

Editado por JuLIOOXX
Link para o comentário
Compartilhar em outros sites

  • 0

Meu Deus do céu, mas nem assim deu. Talvez seja necessário definir algo na central_noticias.php para que o $id seja reconhecido na página noticias.php.

Vejam o código-fonte das minhas duas páginas:

central_noticias.php: (a tag <a href=noticia.php?id=numero_do_id> fica inserido em $title ($title = título da notícia))

<?PHP 
    $pesquisa = mysql_query ("SELECT * FROM gbnews ORDER BY id DESC");
$linhas = mysql_num_rows ($pesquisa);

while ($x = mysql_fetch_array ($pesquisa)) {
$date = $x["Date"];
$Title = $x["Title"];
echo "<tr>
<td background=\"template/gb-extreme/images/t_01.gif\"></td>
<td background=\"template/gb-extreme/images/t_02.gif\"><font color=\"#00000000\"><b>$date: </b>Title</font></td>
<td background=\"template/gb-extreme/images/t_03.gif\"></td>
</tr>";
}

?>
noticia.php
<?php

    $seleciona = mysql_query ("SELECT * FROM gbnews");
    $id=$_GET["id"];
    $resultado = mysql_query("SELECT id, Title, Text FROM gbnews WHERE id=$id");
    echo $resultado;
     {
        $registro=mysql_fetch_row($resultado);
        //echo "<span class='txt'>Id: $registro[0]<br></span>";// O 'Id' está oculto aqui na posiçao '0' do array
        $id=$registro[0];// armazeno o valor da posicao '0' na varialvel '$id'
        //$registro[1] - data
        //$registro[2] - titulo
        //$registro[3] - texto
    }
echo  "
<table width='550' border='0' cellpadding='0' cellspacing='0'>
        <tr>
            <td height='20'></td>
        </tr>
          <tr>
            <td height='30' class='dataInt' valign='top'>» $registro[1]</td>
          </tr>
          <tr>
            <td height='20' class='titulo_az2'><div align='justify'>$registro[2]</div></td>
          </tr>
          <tr><td height='15'></td></tr>
          <tr>
            <td height='20' class='txtInt'>$registro[3]</td>
          </tr>
          <tr>
              <td height='50'></td>
          </tr>
          <tr>
              <td align='left'><a href='central_noticia.php' class='mais_not' target='_top'>» Ler outras noticias</a></td>
          </tr>
          <tr>
              <td height='90'></td>
          </tr>
        </table>
";            
?>

Se algo está errado, deve ser na cetral_noticias.php...

Editado por ReDNoS
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...