Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

RSS mit MySQL Abfrage

Mitglied: masterG

masterG (Level 2) - Jetzt verbinden

18.06.2007, aktualisiert 10.11.2008, 12832 Aufrufe, 8 Kommentare

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]


01.
$RSSFeed = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> 
02.
<rss version=\"2.0\"> 
03.
 <channel> 
04.
  <title>Newsfeed</title>  
05.
  <link>http://meindomain.de/news.php</link>  
06.
  <description>News</description>  
07.
  <language>de</language>  
08.
  <copyright>Copyright: (C) 2007 ?????- Alle Rechte vorbehalten</copyright>  
09.
";
Hier wird der Titel, die Beschreibung, Copyright, etc ... definiert. Alle Infos halten wir im string "$RSSFeed" fest.



01.
<? 
02.
mysql_connect("host","username","passowort"); 
03.
mysql_select_db("dbname"); 
04.
$ergebnis = mysql_query("SELECT ID, autor, titel, text, datum FROM news ORDER BY datum DESC LIMIT 15"); 
05.
while(list ($ID, $autor,$titel,$text,$datum)=mysql_fetch_row($ergebnis)) { 
06.
?>
Jetzt muss einmal die Datenbank verbindung aufgebaut werden und der SQL-Abfrage eingegeben werden was überhaupt abgerufen werden soll.
01.
<? 
02.
$RSSFeed .= "    <item>\n"
03.
 
04.
$RSSFeed .= "     <title>".htmlspecialchars($titel)."</title>\n"
05.
$RSSFeed .= "     <description>".htmlspecialchars($text)."</description>\n"
06.
?>
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.
01.
<? 
02.
$RSSFeed .= "     <link>http://meindomain.de/artikel.php?ID=".$ID."</link>\n"
03.
?>
Hier wird zum Newsartikel ein Link gelegt.

01.
<? 
02.
$RSSFeed .= "     <pubDate>".$datum."</pubDate>\n"
03.
?>
Hier wird das Erstellungsdatum ausgegeben.

01.
<? 
02.
$RSSFeed .= "    </item>\n"
03.
04.
?>
Item wird geschlossen

01.
<? 
02.
$RSSFeed .= "</channel>\n"
03.
$RSSFeed .= "</rss>\n"
04.
?>
Der RSSFeed muss jetzt noch geschlossen werden und das passiert mit diesen Tags.

01.
header("Content-type: text/xml"); 
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.
01.
<? 
02.
echo $RSSFeed
03.
?>
Jetzt muss noch alles ausgegeben werden, das passiert mit echo.

So jetzt noch einmal der vollständige Code:
01.
<?php 
02.
$RSSFeed = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> 
03.
<rss version=\"2.0\"
04.
 <channel> 
05.
  <title>Newsfeed</title>  
06.
  <link>http://meindomain.de/news.php</link>  
07.
  <description>News</description>  
08.
  <language>de</language>  
09.
  <copyright>Copyright: (C) 2007 ?????- Alle Rechte vorbehalten</copyright>  
10.
"; 
11.
 
12.
mysql_connect("domain","username","passowrt"); 
13.
mysql_select_db("dbname"); 
14.
$ergebnis = mysql_query("SELECT ID, autor, titel, text, datum FROM news ORDER BY datum DESC LIMIT 15"); 
15.
while(list ($ID, $autor,$titel,$text,$datum)=mysql_fetch_row($ergebnis)) { 
16.
 
17.
 
18.
$RSSFeed .= "    <item>\n"
19.
 
20.
$RSSFeed .= "     <title>".htmlspecialchars($titel)."</title>\n"
21.
$RSSFeed .= "     <description>".htmlspecialchars($text)."</description>\n"
22.
 
23.
$RSSFeed .= "     <link>http://meindomain.de/artikel.php?ID=".$ID."</link>\n"
24.
 
25.
$RSSFeed .= "     <pubDate>".$datum."</pubDate>\n"
26.
 
27.
$RSSFeed .= "    </item>\n"
28.
29.
 
30.
$RSSFeed .= "</channel>\n"
31.
$RSSFeed .= "</rss>\n"
32.
 
33.
header("Content-type: text/xml");  
34.
echo $RSSFeed
35.
?>
Viel Spaß damit! Ach ja würde mich freuen wenn ihr mir ein Feedback gebt!

masterG
Mitglied: Fraenky
29.08.2007 um 12:52 Uhr
Hallo masterG.
Währe nett, wenn du in deinem Tutorial auch eine Beschreibung der Einsatzmöglichkeiten darstellen würdest.
Mir als nicht sehr Fachkundigem in php erschließt sich nähnmlich nicht das Einsatzgebiet.
Grüße
Fränky
Bitte warten ..
Mitglied: masterG
29.08.2007 um 16:43 Uhr
Mach ich gern ich mach ein kleines Update!

masterG
Bitte warten ..
Mitglied: Fraenky
07.09.2007 um 20:25 Uhr
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
Bitte warten ..
Mitglied: masterG
08.09.2007 um 09:35 Uhr
Ja Fraenky so ist es gemeint!

masterG
Bitte warten ..
Mitglied: Fraenky
08.09.2007 um 16:36 Uhr
Hallo masterG.
Wenn ich den zeitlichen Intervall frei einstellen kann, ist das eine gute Idee.
Werde bei Bedarf den Code mal ausprobieren.
Danke
Fraenky
Bitte warten ..
Mitglied: masterG
19.09.2007 um 16:44 Uhr
Den Zeitintervall nicht aber wenn du eine neue News oder irgendwas postest über nimmt es dieses script und zeigt es gleich im rss-reader an!
Bitte warten ..
Mitglied: Sherwood
05.11.2008 um 16:00 Uhr
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
Bitte warten ..
Mitglied: masterG
10.11.2008 um 18:43 Uhr
Hallo!
Entschuldige meine späte Antwort. Das Format von Pubdate bleibt dir überlassen. Aber ess muss aufjedenfall vorkommen. Tag/Monat/Jahr Stunde/Minute, dass das für jeden RSS-Reader lessbar ist.

Gruß
Bitte warten ..
Ähnliche Inhalte
PHP

AutoComplete mit PHP MySQL jQuery jQueryUI JSON

Anleitung von GuenniPHP2 Kommentare

Auf die Frage"Wie kann man nach Eingabe in einem Textfeld Suchvorschläge anzeigen oder ein Select-Feld füllen", oder ähnlichen Fragen, ...

Windows Server

Microsoft Web Platform Installer 5.0 - Gängige Webserver-Dienste (PHP - MySQL - CMS - Blogs etc.) schnell und einfach installiert

Tipp von colinardoWindows Server5 Kommentare

Ein Tipp für alle die das Tool noch nicht kennen. Es bietet einen Assistenten zur Installation von gängigen Webserver-Diensten ...

Neue Wissensbeiträge
Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 9 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 19 StundenMicrosoft Office2 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 1 TagHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Heiß diskutierte Inhalte
Windows Netzwerk
LAN nur 10MB pro s trotz gb lan
Frage von tsunamiWindows Netzwerk21 Kommentare

Hallo zusammen, ich brauche mal wieder einen Anstoß in die richtige Richtung. Ich habe einen Windows 10 pc mit ...

Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme13 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...