今天我正在提出这个新问题,因为在限制为10的查询中显示一个结果是不可行的。
以下是查询:
$query = "SELECT * FROM articol WHERE status = 1 ORDER BY data DESC LIMIT 10";
$result = mysql_query($query) or die ("Could not execute query");
while($row = mysql_fetch_array($result))
{
$id = $row["id"];
$titlu = $row["titlu"];
$data = $row["data"];
$desc = $row["continut"];
$part = strip_tags($desc);
}
这是显示的回声
<link>http://dirlink.ro/articol.php?art_id=<?php echo $id; ?></link>
<title><?php echo $titlu; ?></title>
<description><?php echo substr($part,0,180); ?> ...{Citeste tot} </description>
<pubDate><?php echo $data; ?></pubDate>
相同的代码被放在其他页面上,对于我网站的其他类别而言,它的工作正常。我不明白为什么在这一部分只回应一个结果。
答案 0 :(得分:4)
你所做的只是重新分配变量,你没有输出它们,所以你只会输出最后的结果。
您需要做的是在while
循环中调用它们:
$query = "SELECT * FROM articol WHERE status = 1 ORDER BY data DESC LIMIT 10";
$result = mysql_query($query) or die ("Could not execute query");
while($row = mysql_fetch_assoc($result)) {
$id = $row["id"];
$titlu = $row["titlu"];
$data = $row["data"];
$desc = $row["continut"];
$part = strip_tags($desc);
print "<link>http://dirlink.ro/articol.php?art_id=$id</link>\n"
."<title>$titlu</title>\n"
."<description>".substr($part,0,180)." ...{Citeste tot} </description>\n"
."<pubDate>$data</pubDate>\n";
}
在我正确阅读问题之后编辑了一下...... [脸红]
答案 1 :(得分:0)
我认为你想对命名元素使用mysql_fetch_assoc($ result),但我可能会弄错。
如果你想把它们全部列出来,你的回声需要在循环中;否则你的值将被覆盖,只显示最后一行。答案 2 :(得分:0)
我已修复它:我使用rssvalidator.org检查了RSS字段,并向我显示了错误以及如何修复它。
所以我修正了错误,这似乎来自一些&circi;
,这是罗马尼亚语的一个字符。