1

RSSフィードをプルすると、1つの投稿が表示されますが、その投稿内には、他のすべての投稿が表示されます。すべてのクロージングを確認し、コードを何度も改訂しましたが、問題がどこにあるのかわかりません。特定のRSSリーダーでは、エラーがフィードを読み取れなかったとだけ表示されます。しかし、他の人にはこの問題があります。

どんな方向でも役に立ちます。以下のコード:


<?PHP

$host = "****";
$un = "****";
$pw = "****";
$db = "****";

$link = mysql_connect($host, $un, $pw) or die(mysql_error());
if(!$link){ die("Could not connect to MARTHA GRAEFF - AROUND IN STYLE database: " . mysql_error()); }
$selectDB = mysql_select_db($db, $link) or die(mysql_error());
if (!$selectDB){ die ("Can't use MARTHA GRAEFF - AROUND IN STYLE database: " . mysql_error()); }

header('Content-Type: text/xml');

echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<rss version="2.0">';
echo '<channel>';
echo '<title>TITLE OF THE FEED</title>';
echo '<description>BLOG DESCRIPTION</description>';
echo '<link>http://www.example.com</link>';

$get_articles = "SELECT `id`, `title`, `image`, `text`, DATE_FORMAT(`date`,'%a, %e %b %Y') as `date` FROM `posts` WHERE `date` <= CURDATE() ORDER BY `added` DESC LIMIT 20";
$articles = mysql_query($get_articles);

while($a = mysql_fetch_array($articles)){
echo "<item>";
    echo "<title>" . $a['title'] . "</title>";
    echo "<description><![CDATA[";
        echo "<img src='http://www.example.com/images/db/thumb.php?src=" .     $a['image'] . "&w=650' width='650' alt='" . $a['title'] . "' /><br />";

        $pid = $a['id'];
        $q = "SELECT * FROM `photos` WHERE `post_id`='" . $pid . "' ORDER BY `added` ASC";
        $r = mysql_query($q);     
        while($i = mysql_fetch_array($r)){
            echo "<img src='http://www.example.com/images/db/thumb.php?src=" . $i['image'] . "&w=650' width='650' alt='" . $a['title'] . "' /><br />";
        }

        echo $a['text'];
    echo "]]></description>";
    echo "<link>http://www.example.com/post.php?id=" . $a['id'] . "</link>";
    echo "<pubDate>" . $a['date'] . " EST</pubDate>";
echo "</item>";
}
echo "</channel>";
echo "</rss>";  

?>
4

1 に答える 1

0

mysql_fetch_object()を使用してオブジェクトを使用できますが
、sql クエリと foreach は while

$get_articles = "SELECT `id`, `title`, `image`, `text`, DATE_FORMAT(`date`,'%a, %e %b %Y') as `date` FROM `posts` WHERE `date` <= CURDATE() ORDER BY `added` DESC LIMIT 20";
$articles = mysql_query($get_articles);

while ($obj = mysql_fetch_object($articles)) {
        $array[$obj->id]['id'] = $obj->id;
        $array[$obj->id]['title'] = $obj->title;
        $array[$obj->id]['image'] = $obj->image;
        $array[$obj->id]['date'] = $obj->date;  
}

そして出力:

foreach ($array as $k) {
echo "<item>";
   echo "<title>" . $k['title'] . "</title>";
   echo "<description>" . $k['image'] . "</description>";
   echo "<date>" . $k['description'] . "</date>"; 
echo "</item>";
} 

これは例です。自分のやり方でコーディングする必要があります

于 2012-08-15T20:08:25.250 に答える