RSS mit MySQL Abfrage
Hi @all!
Ich werde euch zeigen wie man einen RSSFeed programmiert mit einer SQL-Abfrage.
[UPDATE 29.08.2007]
Dies hier kann man gebrauchen für News in einer Firma. Die die einen RSS-Reader haben wissen dann sofort bescheid und können sich den News auf der Hauptseite anschauen! Also auf der Newseintrag seite wird ein neuer News hinzugefügt und dann ruft dieses Script die Datenbank ab und zeigt den Eintrag im RSS-Reader an!
[/UPDATE]
Hier wird der Titel, die Beschreibung, Copyright, etc ... definiert. Alle Infos halten wir im string "$RSSFeed" fest.
Jetzt muss einmal die Datenbank verbindung aufgebaut werden und der SQL-Abfrage eingegeben werden was überhaupt abgerufen werden soll.
Die Werte für "titel" und "text", etc, aus der Datenbank könnten nicht erlaubte Sonderzeichen enthalten ( < > & " ' ) . Die PHP-Funktion "htmlspecialchars" wandelt diese in ihre Entitäten um.
Hier wird zum Newsartikel ein Link gelegt.
Hier wird das Erstellungsdatum ausgegeben.
Item wird geschlossen
Der RSSFeed muss jetzt noch geschlossen werden und das passiert mit diesen Tags.
Der String "$RSSFeed" beinhaltet jetzt den kompletten Feed. Es sollte sichergestellt werden, dass vom Server der richtige mimetype gesendet wird. Das ist jedoch bei den wenigsten Servern notwendig.
Jetzt muss noch alles ausgegeben werden, das passiert mit echo.
So jetzt noch einmal der vollständige Code:
Viel Spaß damit! Ach ja würde mich freuen wenn ihr mir ein Feedback gebt!
masterG
Ich werde euch zeigen wie man einen RSSFeed programmiert mit einer SQL-Abfrage.
[UPDATE 29.08.2007]
Dies hier kann man gebrauchen für News in einer Firma. Die die einen RSS-Reader haben wissen dann sofort bescheid und können sich den News auf der Hauptseite anschauen! Also auf der Newseintrag seite wird ein neuer News hinzugefügt und dann ruft dieses Script die Datenbank ab und zeigt den Eintrag im RSS-Reader an!
[/UPDATE]
$RSSFeed = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<rss version=\"2.0\">
<channel>
<title>Newsfeed</title>
<link>http://meindomain.de/news.php</link>
<description>News</description>
<language>de</language>
<copyright>Copyright: (C) 2007 ?????- Alle Rechte vorbehalten</copyright>
";
<?
mysql_connect("host","username","passowort");
mysql_select_db("dbname");
$ergebnis = mysql_query("SELECT ID, autor, titel, text, datum FROM news ORDER BY datum DESC LIMIT 15");
while(list ($ID, $autor,$titel,$text,$datum)=mysql_fetch_row($ergebnis)) {
?>
<?
$RSSFeed .= " <item>\n";
$RSSFeed .= " <title>".htmlspecialchars($titel)."</title>\n";
$RSSFeed .= " <description>".htmlspecialchars($text)."</description>\n";
?>
<?
$RSSFeed .= " <link>http://meindomain.de/artikel.php?ID=".$ID."</link>\n";
?>
<?
$RSSFeed .= " <pubDate>".$datum."</pubDate>\n";
?>
<?
$RSSFeed .= " </item>\n";
}
?>
<?
$RSSFeed .= "</channel>\n";
$RSSFeed .= "</rss>\n";
?>
header("Content-type: text/xml");
<?
echo $RSSFeed;
?>
So jetzt noch einmal der vollständige Code:
<?php
$RSSFeed = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<rss version=\"2.0\">
<channel>
<title>Newsfeed</title>
<link>http://meindomain.de/news.php</link>
<description>News</description>
<language>de</language>
<copyright>Copyright: (C) 2007 ?????- Alle Rechte vorbehalten</copyright>
";
mysql_connect("domain","username","passowrt");
mysql_select_db("dbname");
$ergebnis = mysql_query("SELECT ID, autor, titel, text, datum FROM news ORDER BY datum DESC LIMIT 15");
while(list ($ID, $autor,$titel,$text,$datum)=mysql_fetch_row($ergebnis)) {
$RSSFeed .= " <item>\n";
$RSSFeed .= " <title>".htmlspecialchars($titel)."</title>\n";
$RSSFeed .= " <description>".htmlspecialchars($text)."</description>\n";
$RSSFeed .= " <link>http://meindomain.de/artikel.php?ID=".$ID."</link>\n";
$RSSFeed .= " <pubDate>".$datum."</pubDate>\n";
$RSSFeed .= " </item>\n";
}
$RSSFeed .= "</channel>\n";
$RSSFeed .= "</rss>\n";
header("Content-type: text/xml");
echo $RSSFeed;
?>
Viel Spaß damit! Ach ja würde mich freuen wenn ihr mir ein Feedback gebt!
masterG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61664
Url: https://administrator.de/contentid/61664
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo masterG.
Verstehe ich das so richtig, das ich als Web-Seite Betreiber verschiedene RSS Feeds in einer Datenbank ablegen kann, und diese dann in einem bestimmten zeitlichen Intervall, z.B. einer Woche, ausgetauscht werden, so das der RSS Abonament den neuen Feed angezeigt bekommt, so das er diesen abrufen kann?
Gruß
Fraenky
Verstehe ich das so richtig, das ich als Web-Seite Betreiber verschiedene RSS Feeds in einer Datenbank ablegen kann, und diese dann in einem bestimmten zeitlichen Intervall, z.B. einer Woche, ausgetauscht werden, so das der RSS Abonament den neuen Feed angezeigt bekommt, so das er diesen abrufen kann?
Gruß
Fraenky
Hi!
Vielen Dank für die tolle Anleitung, hat bei mir bestens geklappt.
Hab da nur noch ein Problem welches ich noch gerne lösen möchte.
Wenn ich nähmlich den Feed öffne zeigt es mir alles so an wie es sein sollte. Nur wenn ich "F5" drücke bzw. aktualisiere zeigt es mir nicht mehr das übliche RSS-"Layout" sondern nur noch eine ganz normale HTML-Textausgabe an. Ist dir das Problem bekannt ?
Ach ja und noch eine Frage :D
In welchem Format muss das Datum in <pubDate></pubDate> sein?
Gruss
Vielen Dank für die tolle Anleitung, hat bei mir bestens geklappt.
Hab da nur noch ein Problem welches ich noch gerne lösen möchte.
Wenn ich nähmlich den Feed öffne zeigt es mir alles so an wie es sein sollte. Nur wenn ich "F5" drücke bzw. aktualisiere zeigt es mir nicht mehr das übliche RSS-"Layout" sondern nur noch eine ganz normale HTML-Textausgabe an. Ist dir das Problem bekannt ?
Ach ja und noch eine Frage :D
In welchem Format muss das Datum in <pubDate></pubDate> sein?
Gruss