Avatar billede Slettet bruger
12. oktober 2009 - 23:38 Der er 5 kommentarer og
1 løsning

RSS feed via MySQL

Hej eksperten,

Nu har jeg måtte smide håndklædet i ringen, og stille eksperten.dk om råd.

Jeg er ved at forsøge mig med at opbygge en RSS-feed, som skal hente data fra min MySQl database.

Databasen ser således ud:

CREATE TABLE `indlaeg` (
  `id` int(4) NOT NULL auto_increment,
  `date` date NOT NULL,
  `overskrift` varchar(100) NOT NULL default '',
  `indhold` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

Men alt hvad jeg finder a guides fejler for hårdt, nogle der kunne hjælpe mig evt.?
Avatar billede arne_v Ekspert
12. oktober 2009 - 23:44 #1
Du skriver noget kode som læser data fra databasen og skriver data i valid RSS format.

Det er vist så præcist som man kan gøre det udfra de foreliggende oplysninger.

Hvis du evt. poster noget kode og nogle fejlbeskeder, så kan vi blive meget mere konkrete.
Avatar billede Slettet bruger
12. oktober 2009 - 23:54 #2
Fejl: henter intet fra databasen:
http://jensjungersen.dk/rss.xml

Kode:
<?php
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

echo "<rss version=\"2.0\">";

echo " <channel>
<title>Feed title</title>
<description>A description of the feed contents</description>
<link>http://www.yoursite.com/</link>";

require("db.php");

$data = mysql_query("SELECT * FROM indlaeg ORDER BY id DESC LIMIT 10"); while($row = mysql_fetch_array($data)) {
$row[Intro] = str_replace("images/", "http://www.yoursite.com/images/", $row[Intro]);

echo " <item>
<link>http://www.yoursite.com/article.php?id=".$row[id]."</link>
<guid isPermaLink=\"true\">http://www.yoursite.com/article. php?id=".$row[id]."</guid>
<title>".$row[overskrift]."</title>
<description><![CDATA[".$row[indhold]."]]></description>
}
</item>";

</channel>
</rss>";
?>


Skal du bruge mere?
Avatar billede Slettet bruger
12. oktober 2009 - 23:55 #3
min db.php ser således ud:

<?
@mysql_connect(‘localhost', ‘jensjungersen_d', ‘xxxxxx') or die(‘ERROR--CAN'T CONNECT TO SERVER');
@mysql_select_db(‘jensjungersen_d') or die(‘ERROR--CAN'T CONNECT TO DB');
?>
Avatar billede Slettet bruger
13. oktober 2009 - 01:44 #4
Har endelig fundet en løsning der ser således ud:

http://www.jensjungersen.dk/rss.php

<?php 
header("Content-Type: application/rss+xml; charset=ISO-8859-1");

DEFINE ('DB_USER', 'user'); 
DEFINE ('DB_PASSWORD', 'password'); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'database'); 
 
$rssfeed = '<?xml version="1.0" encoding="ISO-8859-1"?>'; 
$rssfeed .= '<rss version="2.0">'; 
$rssfeed .= '<channel>'; 
$rssfeed .= '<title>jensjungersen.dk</title>'; 
$rssfeed .= '<link>http://www.yourdomain.com</link>'; 
$rssfeed .= '<description>RSS feed</description>'; 
$rssfeed .= '<language>en-us</language>'; 
$rssfeed .= '<copyright>Copyright (C) 2009 yourdomain.com</copyright>'; 

  $connection = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
        or die('Could not connect to database'); 
    mysql_select_db(DB_NAME) 
        or die ('Could not select database'); 
 
    $query = "SELECT * FROM database ORDER BY id DESC"; 
    $result = mysql_query($query) or die ("Could not execute query"); 
 
    while($row = mysql_fetch_array($result)) { 
        extract($row); 
 
        $rssfeed .= '<item>'; 
        $rssfeed .= '<title>' . $title . '</title>'; 
        $rssfeed .= '<description>' . $description . '</description>'; 
        $rssfeed .= '<link>' . $link . '</link>'; 
        $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s", strtotime($date)) . '</pubDate>'; 
        $rssfeed .= '</item>'; 
    } 
 
    $rssfeed .= '</channel>'; 
    $rssfeed .= '</rss>'; 
 
    echo $rssfeed; 
?>
Avatar billede Slettet bruger
13. oktober 2009 - 01:44 #5
Men hvordan ændre jeg visningen af tidsformaten således tidspunktet udegår, og kun dato fremgår.
Avatar billede Slettet bruger
13. oktober 2009 - 03:01 #6
Opretter lige det sidste spørgsmål i en ny tråd, og giver mig selv point for dette svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester