Jump to content
Fórum Script Brasil
  • 0

Mostrar notícia desejada


ReDNoS

Question

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...

Edited by ReDNoS
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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...

Edited by ReDNoS
Link to comment
Share on other 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 to comment
Share on other 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

Edited by JuLIOOXX
Link to comment
Share on other 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...

Edited by ReDNoS
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...