2012-04-11 1 views
0

Ich habe einen Code, der einen RSS-Feed anzeigt, aber es wird nicht den Hauptinhalt anzeigen.Wie man zwei Reihen Daten zusammen von MySQL im RSS-Feed setzt

<?PHP 
include("../config.php"); 
#// Timetable Clearup Variabls 
$yesterday = strtotime('yesterday'); 
$yesterdow = date('l',$yesterday); 
$order = "SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time"; 
$result = mysql_query($order); 
$yesterdayd = date('F jS, Y', time()-86400); 

    //SET XML HEADER 
    header('Content-type: text/xml'); 

    //CONSTRUCT RSS FEED HEADERS 
    $output = '<rss version="2.0">'; 
    $output .= '<channel>'; 
    $output .= "<title>Timetable - {$yesterdayd} </title>"; 
    $output .= '<description>Timetable.</description>'; 
    $output .= '<link>http://example.com/</link>'; 
### $output .= '<copyright>Your copyright details</copyright>'; 

    //BODY OF RSS FEED 
    $output .= '<item>'; 
     $output .= "<title>Timetable for $yesterdayd</title>"; 
     $output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>"; 
     $output .= '<link>Link to Item</link>'; 
     $output .= '<pubDate>Date Published</pubDate>'; 
    $output .= '</item> '; 

    //CLOSE RSS FEED 
    $output .= '</channel>'; 
    $output .= '</rss>'; 

    //SEND COMPLETE RSS FEED TO BROWSER 
    echo($output); 

?> 

Das Bit mit der Ausgabe I habe ist:

$output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>"; 

I die Daten aus jeder Reihe auf das Futter zur Ausgabe im Grunde braucht.

Hier ist, wie ich es (in eine Tabelle, die das Format Ich mag würde) normalerweise tun:

<?php 
include("../config.php"); 

#// Timetable Clearup Variabls 
$yesterday = strtotime('yesterday'); 
$yesterdow = date('l',$yesterday); 

echo "<table width=\"580px\" class=\"board\" border=\>"; 

$order = "SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time"; 
$result = mysql_query($order); 

// Error checking 
if (!$result) { 
    // output error, take other action 
} 
else { 
    while ($row=mysql_fetch_array($result)){ 
    // Append all results onto an array 
    $rowset[] = $row; 
     echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>"; 
    } 
} 





?> 

Antwort

0

Wie meinen Sie das Sie das rss in einer Tabelle angezeigt werden soll? Möchten Sie HTML oder RSS (XML) erstellen? Oder vielleicht sprechen Sie über die Umwandlung der RSS in eine HTML-Anzeige? Ein Weg ist, XSLT dafür zu verwenden.

In Ihrem RSS-generierenden Skript ist für jedes Feedelement keine $row Variable definiert. Sie müssen nur Platz die while($row = mysql_fetch_array($result)) um den rss Taktleistung - so etwas wie folgt aus:

while ($row = mysql_fetch_array($result)) { 
    $output .= '<item>'; 
    $output .= "<title>Timetable for $yesterdayd</title>"; 
    $output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>"; 
    $output .= '<link>Link to Item</link>'; 
    $output .= '<pubDate>Date Published</pubDate>'; 
    $output .= '</item>'; 
} 

EDIT: auf die erneute Prüfung Code: Sie müssen auch die Felder in Ihrer description Tag brechen. Sie sollten keine td Tags einfügen - die RSS-Elemente sind nicht (normalerweise) dazu gedacht, HTML-markierte Daten zu enthalten.

So etwas wie diese (wenn dieser Sinn Sinn macht):

$output = "<description> 
    <username>" . htmlspecialchars($row['username']) . "</username> 
    <time>" .  htmlspecialchars($row['time']) . "</time> 
</description>"; 
Verwandte Themen