使用LIMIT 10在查询上显示一个结果

时间:2011-08-16 16:36:55

标签: php mysql rss

今天我正在提出这个新问题,因为在限制为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>

相同的代码被放在其他页面上,对于我网站的其他类别而言,它的工作正常。我不明白为什么在这一部分只回应一个结果。

3 个答案:

答案 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;,这是罗马尼亚语的一个字符。