RSS-Feed gibt nur erstes item aus

DrEvil

Erfahrenes Mitglied
Hallo Leute,
ich versuche mir einen RSS-Feed zu basteln. Grundlegend klappt's auch, ABER aus irgendeinem Grund gibt der Feed nur das erste Item aus.

Mittlerweile habe ich mein Script bereits auf das minimalste geschrumpft. Ich will einfach nur 3 items im feed angezeigt bekommen, die eigentlich vorgesehene Datenbankabfrage ist erstmal ausgeklammert. Aber es will einfach nicht...

Ich habe schon alles probiert was mir so einfiel - hab statt der for-Schleife eine foreach gemacht, hab sogar meinen php-Code in ne "echte" php-Datei kopiert um zu gucken, ob ich evtl falschen Code verzapft habe. Ich habe probiert auf die Schleifen zu verzichten und einfach drei items untereinander geschrieben, diese wiederum wahlweise mit echo ausgegeben oder aber als xml-Struktur (sprich so wie den Channel-Header und dann den Inhalt der einzelnen Eigenschaften per <?php echo XY?> eingefügt.

Es ging nicht - wenn ich den Feed aufrufe kommt immer nur das erste item...

Hat jemand ne Idee?

PHP:
<?php header("Content-type: text/xml"); 
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>"; ?> 
<rss version="2.0"> 
<channel>  
    <title>GREIFENBLAT: Veranstaltungen in Greifswald</title> 
    <description>Aktuelle Veranstaltungsübersicht</description> 
    <language>de</language>  
    <link>http://veranstaltungen.greifenblatt.de</link>
    <lastBuildDate><?php $now = time(); echo $now; ?></lastBuildDate>
    <managingEditor>redaktion@greifenblatt.de</managingEditor>

<?php 
require('../mysql_functions.php'); 

$dateArray = array(
				date('d.m.Y', mktime(0, 0, 0, date('m'), date('d')+1, date('Y')) ),//morgen
				date('d.m.Y', mktime(0, 0, 0, date('m'), date('d'), date('Y')) ),//heute
				date('d.m.Y', mktime(0, 0, 0, date('m'), date('d')-1, date('Y')) )//gestern
				);
$datekeyArray = array(
				date('Y-m-d', mktime(0, 0, 0, date('m'), date('d')+1, date('Y')) ),//morgen
				date('Y-m-d', mktime(0, 0, 0, date('m'), date('d'), date('Y')) ),//heute
				date('Y-m-d', mktime(0, 0, 0, date('m'), date('d')-1, date('Y')) )//gestern
				);
				
//DB::DbConnect();

//items von morgen, heute, gestern
for($i = 0; $i<= 2; $i++){
	echo"
		<item>\n 
		<title>Veranstaltungen am ".$dateArray[$i]."</title>\n 
		<description>".$dateArray[$i]." Veranstaltungen" ;
	
	//DB-Schleife
/*
	Hier steht die ausgeklammerte Datenbank-Abfrage

	//ENDE DB-Schleife
	*/
	echo"
		</description>\n    
		<link>http://veranstaltungen.greifenblatt.de</link>\n     
		<pubDate>".$dateArray[$i]."</pubDate>\n
    	</item>\n"; 

}//Ende for-Schleife

?>
 
</channel> 
</rss>

Hier geht's zum Feed...

Grüße Dr.Evil
 
Moin Doc

Komisch, ich bekomme 3 Stück zu Gesicht :eek:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<rss version="2.0"> 
<channel>  
    <title>GREIFENBLAT: Veranstaltungen in Greifswald</title> 
    <description>Aktuelle Veranstaltungsübersicht</description> 
    <language>de</language>  
    <link>http://veranstaltungen.greifenblatt.de</link>
    <lastBuildDate>1264730351</lastBuildDate>
    <managingEditor>redaktion@greifenblatt.de</managingEditor>


		<item>
 
		<title>Veranstaltungen am 30.01.2010</title>
 
		<description>30.01.2010 Veranstaltungen
		</description>
    
		<link>http://veranstaltungen.greifenblatt.de</link>
     
		<pubDate>30.01.2010</pubDate>

    	</item>

		<item>
 
		<title>Veranstaltungen am 29.01.2010</title>
 
		<description>29.01.2010 Veranstaltungen
		</description>
    
		<link>http://veranstaltungen.greifenblatt.de</link>
     
		<pubDate>29.01.2010</pubDate>

    	</item>

		<item>
 
		<title>Veranstaltungen am 28.01.2010</title>
 
		<description>28.01.2010 Veranstaltungen
		</description>
    
		<link>http://veranstaltungen.greifenblatt.de</link>
     
		<pubDate>28.01.2010</pubDate>

    	</item>
 
</channel> 
</rss>

Vielleicht mal den Cache leeren oder entsprechende Header senden, damit du etwas aktuelles zu Sehen bekommst.
 
Hi,
erstmal danke für die schnelle Antwort zu später Stunde.

Hab den Cache gelöscht und auch mal den Feed testweise mit meinem RSS-Reader abboniert...
... immer noch nur das erste item.
:confused:

Was meinst du denn mit "entsprechende Header senden" Sven?
 
Es ist komisch, im Firefox werden mir auch drei Items angezeigt. Im Mac Safari und Mac Mail nicht...
 
mh mist... Kommando zurück. Jetzt wird das erste item doppelt ausgegeben. Es stehen die Veranstaltungen für morgen zweimal drin...
Cache habe ich schon einmal gelöscht.
 
Momentan sieht man da leider gar nichts außer deinem DB Fehler.

<b>Fatal error</b>: Non-static method DB::DB() cannot be called statically in <b>/xxx/wp-content/themes/wyntonmagazine/module/kalendermodul/rss/rss.php</b> on line <b>26
 
Jo - hab schon weiter gebastelt. Der Fehler müsste jetzt weg sein.

Bei dem doppelten item scheint es sich um ein "altes item" - wie auch immer das dahin kommt. Aber z.B. hat es noch immer den alten Link, während die neuen items verschiedene Links haben. Vielleicht geht ja das falsche item von alleine weg - ich meine theoretisch dürfte es garnicht mehr da stehen.
 
Zurück