Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 

Sistema de RSS  #resolvido

01-08-2007 11:12

Estou com uma dúvida sobre como criar link's em um RSS... O código que estou usando é esse:
<?php // Criamos nossa variavel para receber nosso corpo do RSS/XML // esse .= é porque estamos concatenando tudo para a variável $rss $rss .= '<?xml version="1.0" encoding="ISO-8859-1"?>'; $rss .= '<rss version="2.0">'; $rss .= '<channel>'; $rss .= '<title>PCorp Online</title>'; $rss .= '<description>Criando um novo ideal de tecnologia.</description>'; $rss .= '<link>http://www.pcorp.info/</link>'; $rss .= '<language>pt-br</language>'; // Agora começamos a montar nosso SQL responsável por pegar as informações no nosso banco de dados MySQL. // Conectamos ao nosso MySQL informando os dados de host, user e senha. $connect = mysql_connect('localhost','*****','*****'); // Selecionamos nossa base de dados mysql_select_db('*****',$connect); $rs_rss = mysql_query("SELECT id, titulo, descricao, data_hora FROM artigo ORDER BY data_hora DESC LIMIT 20", $connect); //Agora, geramos os itens com o resultado da busca do banco de dados // Iniciamos nossa variável $conteudo vazia. $conteudo = ""; while($criando=mysql_fetch_object($rs_rss)) { $conteudo .= '<item>'; $conteudo .= "<title>$criando->titulo</title>"; $conteudo .= "<description>$criando->descricao</description>"; $conteudo .= "<lastBuildDate>$criando->data_hora</lastBuildDate>"; $conteudo .= "<link>$criando->id</link>"; $conteudo .= '</item>'; } // Agrupamos tudo em uma única variável $xml = $rss.$arquivo.$conteudo; // Fechamos nossas TAG $xml .= '</channel></rss>'; // Depois de criarmos nosso rss, vamos gravar ele em disco para podermos utilizar. // Abre o arquivo para leitura e escrita; coloca o ponteiro do arquivo no começo // e diminui (trunca) o tamanho do arquivo para zero. Se o arquivo não existe, // tenta criá-lo (w+). $arquivo = fopen('feed.xml','w+'); // gravamos os dados no arquivo.rss fwrite($arquivo,$xml); // fechamos nosso arquivo fclose($arquivo); ?>

Tentei de várias formas mais não consegui, ou não mostrava nada ou dava erro...

O link tem que ser direcionado para " http://www.pcorp.info/noticia.php?id=* " onde o "*" é igual ao id da noticia clicada...

Se alguem tiver como me ajudar, agradeço desde já...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17658
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de RSS

01-08-2007 11:35

Pode ser sua conexão, tenta assim:
$connect = mysql_connect("localhost", "login", "senha") or die(mysql_error());
$db = mysql_select_db("bancodedados");

a chamada para o while ficaria algo como
$selec = "SELECT ...";
$exec = mysql_query($selec, $connect) or die(mysql_error());

o while
while($dados=mysql_fetch_array($exec)) {
extract($dados);

$conteudo .= '<item>';
$conteudo .= "<title>$criando->titulo</title>";
... continua
0
A melhor hospedagem para o seu site HostGator!
 

Sistema de RSS

01-08-2007 13:25

O problema está na verdade no 'while', eu preciso inserir um link com 'POST' em cada noticia do feed... Ele ta funcionando de maneira a criar links que vão para a pasta raiz do arquivo 'feed.xml' com numeros "1,2,3,4..." na ordem do '$id'... Eu estou tentando modificar essa maneira de mostrar os links...

o código original:
while($criando=mysql_fetch_object($rs_rss)) { $conteudo .= '<item>'; $conteudo .= "<title>$criando->titulo</title>"; $conteudo .= "<description>$criando->descricao</description>"; $conteudo .= "<lastBuildDate>$criando->data_hora</lastBuildDate>"; $conteudo .= "<link>$criando->id</link>"; $conteudo .= '</item>'; }

O que tenho que fazer deve ser parecido a isso:
while($criando=mysql_fetch_object($rs_rss)) { $conteudo .= '<item>'; $conteudo .= "<title>$criando->titulo</title>"; $conteudo .= "<description>$criando->descricao</description>"; $conteudo .= "<lastBuildDate>$criando->data_hora</lastBuildDate>"; $conteudo .= "<link>$criando->id</link>"; $conteudo .= "<a href='noticia.php?id=$id'> ler... </a>"; $conteudo .= '</item>'; }

Normalmente essa função seria
echo "<a href='noticia.php?id=$id'> ler... </a>"; ...

Da maneira que coloquei não funciona...
$conteudo .= "<a href='noticia.php?id=$id'> ler... </a>";

Acontece que dessa forma (echo), o link não é enviado para o feed.xml e fica no rss.php...

A questão é então como adaptar o código para que ele gere tal função...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17658
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de RSS

01-08-2007 18:39

Já tentou colocar dentro de uma linha $conteudo?
<link>noticia.php?id=$id</link>

No caso, qual o resultado do
$conteudo .= "<link>$criando->id</link>";
no documento criado?
0
A melhor hospedagem para o seu site HostGator!
 

Sistema de RSS

01-08-2007 18:49

Agora tentei assim:
while($criando=mysql_fetch_object($rs_rss)) { $conteudo .= '<item>'; $conteudo .= "<title>$criando->titulo</title>"; $conteudo .= "<description>$criando->descricao</description>"; $conteudo .= "<lastBuildDate>$criando->data_hora</lastBuildDate>"; $conteudo .= "<link>../noticia.php?id=$criando->id</link>"; $conteudo .= '</item>'; }

Funcionou perfeitamente no IE7, pórem no Firefox 2.0.0.6 os links não apareceram... Vale ressaltar que antes quando só mostrava o ID sem ter o link como eu queria também não estavam aparecendo...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17658
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de RSS

01-08-2007 19:53

Já viu outro sistema assim funcionar no FF?
talvez ele não ofereça suporte.
0
A melhor hospedagem para o seu site HostGator!
 

Sistema de RSS

01-08-2007 20:10

Consegui !!!

Eu tinha colocado o endereço dessa forma:

../noticias.php?$id=id

Reparei em um RSS de outro site que ele colocava o endereço completo.

Dessa forma:

http://www.pcorp.info/noticias.php?$id=id

Ai funcionou !!!

Valew....
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17658
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Sistema de RSS

01-08-2007 22:16

¨laughing¨
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]