2013-05-09 34 views
0

我正在嘗試在do-while循環內執行simplexml計數,但它的簡單但計數不正確,因爲它在2個循環內。有一個更簡單的方法來做計數?在do-while循環內執行Simplexml計數

$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 
+0

你可以在你的加載的xml中指定'first_feed'元素嗎?因爲在上面的代碼片段中沒有提及它。如果您提供更多的細節,那麼解決方案可以更加明顯。 – NullPointer 2013-05-09 12:53:37

回答

0

您應該使用庫MySQLi而不是mysql_ *的爲現在depricated,而是繼續前進......你有兩個選擇,或者:

1)move $ feed_count = 1;到在所有項目的單個計數的循環之前。

2)使計數組成的陣列,用於foreach循環,每次退出foreach循環時間遞增的數組索引。這會爲你的物品提供一系列計數。如果您使用從項目變量派生的密鑰,例如它的名字,那麼你可以計算一個項目類型的出現次數,即使它們不是全部在你的xml中。

+0

不起作用。請檢查我是否已更新Q. – X10nD 2013-05-09 12:12:13

+0

也許您應該說出您希望看到的內容 - 您添加的內容看起來像我期望看到的內容。 – 2013-05-09 12:16:28

+0

@ a1檢查問題的結尾我需要的輸出在那裏。剛剛更新了Q – X10nD 2013-05-09 12:17:51