繁体   English   中英

从MySQL数据库生成RSS feed

[英]Generating an RSS feed from MySQL Database

这是我的rss.php文件的代码:

<?php header("Content-type: text/xml"); ?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?>

<?php
mysql_connect("localhost", "database_user", "password") or die(mysql_error()); 
mysql_select_db("database_name") or die(mysql_error()); 

$cityquery = "SELECT * FROM cities ORDER BY RAND() LIMIT 1";
$cityresult = mysql_query($cityquery);
$cityrow = mysql_fetch_row($cityresult);
$city = $cityrow[0];

$servicequery = "SELECT * FROM services ORDER BY RAND() LIMIT 1";
$serviceresult = mysql_query($servicequery);
$servicerow = mysql_fetch_row($serviceresult);
$service = $servicerow[0];
?>

<?php
$servicename = ucwords($service);
$cityname = ucwords($city);
$servicelink = str_replace(" ","-",$service);
$citylink = str_replace(" ","-",$city);
?>

<rss version="2.0">
<channel>
  <title>My Website</title>
  <link>http://local.mywebsite.com</link>
  <description>This is my description.</description>
  <pubDate><?echo date('Y/m/d H:i:s');?></pubDate>

<?php foreach( range( 1, 25 ) as $i ): ?>

<item>
    <title><?php echo $servicename; ?> in <?php echo $cityname; ?></title>
    <pubDate><?echo date('Y/m/d H:i:s');?></pubDate>
    <link>http://local.mywebsite.com/<?php echo $servicelink; ?>/<?php echo $citylink; ?></link>
    <description><?php echo $servicename; ?> in <?php echo $cityname; ?> - <?php echo $servicename; ?> <?php echo $cityname; ?> - <?php echo $cityname; ?> <?php echo $servicename; ?> - <?php echo $cityname; ?> - <?php echo $servicename; ?></description>
</item>

<?php endforeach; ?>

</channel>
</rss>

从上面的代码中可以看到,此RSS feed从MySQL数据库获取城市和服务的列表。 RSS feed中有25个项目,问题在于它们都是完全相同的项目。 要基本创建一个循环,以便使每个项目实际上显示与数据库不同的城市/服务,需要更改什么?

如果有人需要澄清,请随时告诉我。

您可以在while循环中利用mysql_fetch_array ,并对其进行回显。

追加如下内容:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo $row['cityname'];
}

mysql_ *函数已过时,将被删除,因此您应该看看MySQLiPDO 以正确的方式使用这些功能也可以保护您免受SQL注入和其他漏洞的侵害。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM