How to Create a Reliable RSS Feed


You probably already know what RSS is - it is a file format for syndicating news and the content of sites, in a very flexible manner. What you probably don't know is that creating a correct RSS feed is in many cases a very difficult task for webmasters. I am not talking about sites that supply just a few news a day, I am talking about sites that supply tens of news a day.



Let's take for example a shareware site. For the site to become popular, it has to be always up to date and to contain all the latest releases. So, the webmasters have to search for the new titles and add them to their databases. Many of them offer their visitors the possibility to stay informed about the latest releases using RSS feeds, which contain their names, links and short descriptions of the new releases. Visitors interested in this kind of information subscribe to the RSS feeds, using web-based or desktop aggregators, like Bloglines or SharpReader. All the aggregators query the RSS feeds every couple of hours, which is sufficient for many of the feeds, but not for all of them. It is a common practice that the feeds supply only the last 20 items, but what if, between two queries from the aggregators, appear, let's say, 43 items? Then, 23 of them wouldn't appear to the subscribers. Probably you've never thought about this, but I can assure you this situation really occurs, and you have to solve it, for you and your visitors' interest.

I will now show you a solution to this problem, implemented in PHP, one of the most used scripting languages on websites that are led by large databases. The main idea is that we will compare the date of the first and the 20th item, and if they are equal, we will run an extra query, to also add the other items that appeared in the database in the same day.

Lets suppose that the table from which we want to take the last items is named "products" and has 4 fields: "p_name" (product name), "p_added" (date when the product was added), "p_link" (product link) and "p_description" (product description). We have 2 functions, one that adds an item to the feed, and one that adds the standard elements of a RSS file, and then queries the database for the items added to the table on the current day.

function additem($t, $l, $d)

{

$r= "n";

$r.="$tn";

$r.="$dn";

$r.="$ln";

$r.="n";

return $r;

} function create_rss()

{

$r ="n";

$r.="n";

$r.=" n";

$r.=" Core Download - Latest 20 releasesn";

$r.=" http://www.coredownload.com/n";

$r.=" The essential shareware and freeware downloads!n";

$r.=" en-usn";

$q1="SELECT * FROM `products` WHERE 1 ORDER by p_added DESC LIMIT 0,20";

$result1 = mysql_query($q1);

$i=0;

while ($row = mysql_fetch_array($result1))

{

$i++;

if ($i==1) { $data1=$row[p_added]; }

$r .=additem($row[p_name], $row[p_link], $row[p_description]);

$data2=$row[p_added];

}

if ($data1==$data2)

{

$q1="SELECT * FROM `products` WHERE `p_added`='$data2' LIMIT 20,1000";

$result1 = mysql_query($q1);

while ($row = mysql_fetch_array($result1))

{

$r .=additem($row[p_name], $row[p_link], $row[p_description]);

}

}

$r.=" n";

$r.=" n";

echo $r; }

As you will see if you use this solution on your website, your feed's subscribers will find out about all your items (products, articles, or anything else), no matter how many they are. You can see this solution implemented on CoreDownload.com, a brand new shareware and freeware directory, that offers its visitors 3 RSS feeds: one for all the products, one for shareware and one for freeware.

Close    To Top
  • Prev Article-Geek:
  • Next Article-Geek:
  • Now: Tutorial for Web and Software Design > Geek Articles > RSS > Geek Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction