0

我正在尝试在 do-while 循环内进行 simplexml 计数,是的,它很简单,但计数不正确,因为它在 2 个循环内。有没有更简单的计数方法?

$query_fl = "SELECT * FROM table";
$fl = mysql_query($query_fl, $rf) or die(mysql_error());
$row_fl = mysql_fetch_assoc($fl);

do {
    $xml = $row_fl['fu'];
    $xmlDoc = new DOMDocument();
    $xmlDoc->load($xml);

    $rss = simplexml_load_file($xml);
    $items = $rss->channel->item;

    foreach($items as $item){
        echo $rss->channel->title;
        echo $feed_count."<BR>";
        $feed_count++;
    }

    $feed_count=1;

} while ($row_fl = mysql_fetch_assoc($fl)); 

-------------输出是这样的

Feed 1 - Count-1
Feed 1 - Count-2
Feed 1 - Count-3
Feed 1 - Count-4
Feed 1 - Count-5

Feed 2 - Count- 1
Feed 2 - Count- 2
Feed 2 - Count- 3
...
..

---------------我希望输出为

   Feed 1 - Count-5
   Feed 2 - Count-3
4

1 回答 1

0

您应该使用 mysqli 而不是 mysql_* ,因为它现在已被废弃,但继续前进......您有两个选择:

1) 移动 $feed_count=1; 在 do 循环之前对所有项目进行一次计数。

或者

2) 为 foreach 循环创建一个计数数组,每次退出 foreach 循环时递增数组索引。这将为您的项目提供一系列计数。如果您使用从项目变量派生的键,例如它的名称,那么您可以计算项目类型的出现次数,即使它们不在您的 xml 中。

于 2013-05-09T12:07:47.933 回答