Я попытался создать канал RSS, который загружает данные из моей базы данных SQL.
Когда я запускаю его, либо он берет меня к RSS-ридеру в моем интернет-браузере и говорит «без содержания«, или он вернет ошибку:
Эта страница содержит следующие ошибки: ошибка в строке 2 в столбце 1. Дополнительное содержимое в конце документа. Ниже приведено отображение страницы до первой ошибки.
Я использую Dreamweaver для создания RSS и создаю его в файле PHP.
<?php require_once('Connections/mydatabase.php'); ?>
<?php
header('Content-type: text/xml');
$mydatabase = mysqli_connect("http://127.0.0.1","root","au291826","db_cms");
$rss = '<?xml version="1.0" encoding="utf-8"?>';
$rss .= '<rss version="2.0">';
$rss .= '<channel>';
$rss .= '<title>My RSS</title>';
$rss .= '<link>http://localhost/cws_files/</link>';
$rss .= '<description>implementation of RSS with PHP </description>';
$rss .= '<language>ar-sa</language>';
$rss .= '<copyright> RSS </copyright>';
mysql_select_db($database_mydatabase, $mydatabase);
$query_getRecent = "SELECT news.post_id, news.title
FROM news
ORDER BY news.updated
DESC LIMIT 10
";
$getRecent = mysql_query($query_getRecent, $mydatabase) or die(mysql_error());
$totalRows_getRecent = mysql_num_rows($getRecent);
while ($row_getRecent = mysql_fetch_assoc($getRecent)){
$rss .= '<item>';
$rss .= '<link>
http://localhost/cws_files/index.php?post_id=' . $row_getRecent['post_id'] . '
</link>';
$rss .= '<title>' . $row_getRecent['news.title'] . '</title>';
$rss .= '</item>';
}
$rss .= '</channel>';
$rss .= '</rss>';
echo $rss;
?>
взгляните на эту строку:
$rss .= '<title>' . $row_getRecent['news.title'] . '</title>';
индекс массива результатов не может содержать имя таблицы, только имена столбцов. заменить
$rss .= '<title>' . $row_getRecent['title'] . '</title>';
и посмотрим, что вы получите.
Также эта строка выглядит очень подозрительно.
$rss .= '<link>
http://localhost/cws_files/index.php?post_id=' . $row_getRecent['post_id'] . '
</link>';
Проверьте, если это одна строка. В противном случае, если есть разрывы строк, исправьте это как одну строку.
<?php require_once('Connections/mydatabase.php'); ?>
<?php
//header ("Content-Type:text/xml");
?>
<?php
header('Content-type: text/xml');
$mydatabase = mysqli_connect("http://127.0.0.1","root","au291826","db_cms");
$rss = '<?xml version="1.0" encoding="utf-8"?>';
$rss .= '<rss version="2.0">';
$rss .= '<channel>';
$rss .= '<title>My RSS</title>';
$rss .= '<link>http://localhost/cws_files/</link>';
$rss .= '<description>implementation of RSS with PHP </description>';
$rss .= '<language>ar-sa</language>';
$rss .= '<copyright> RSS </copyright>';
mysqli_select_db($database_mydatabase, $mydatabase);
$query_getRecent = "SELECT news.post_id, news.title FROM news ORDER BY news.updated DESC LIMIT 10";
$getRecent = mysqli_query($query_getRecent, $mydatabase) or die(mysqli_error());
$totalRows_getRecent = mysqli_num_rows($getRecent);
while ($row_getRecent = mysqli_fetch_assoc($getRecent)){
$rss .= print_r($row_getRecent);
$rss .= '<item>';
$rss .= '<link> http://localhost/cws_files/index.php?post_id=' . $row_getRecent['post_id'].'</link>';
$rss .= '<title>' . $row_getRecent['title'] . '</title>';
$rss .= '</item>';
}
$rss .= '</channel>';
$rss .= '</rss>';
echo $rss;
?>