我有以下代码:嵌套foreach循环不起作用
foreach($RSS_DOC->channel->item as $RSSitem) {
$item_id = md5(str_replace(array('\'', '"'), '', $RSSitem->title));
$fetch_date = date("Y-m-j G:i:s"); //NOTE: we don't use a DB SQL function so its database independant
$item_title = str_replace(array('\'', '"', '(', ')', ' - ', '.'), '', $RSSitem->title);
$item_date = date("Y-m-j G:i:s", strtotime($RSSitem->pubDate));
$item_url = $RSSitem->link;
$words = explode(' ', $item_title);
echo "Processing item '" , $item_id , "' on " , $fetch_date , "<br/>";
echo $item_title, " - ";
echo $item_date, "<br/>";
echo $item_url, "<br/>";
// Does record already exist? Only insert if new item...
$item_exists_sql = "SELECT item_id FROM rssingest where item_id = '" . $item_id . "'";
$item_exists = mysql_query($item_exists_sql, $db);
if(mysql_num_rows($item_exists) < 1) {
echo "<font color=green>Inserting new item..</font><br/>";
$item_insert_sql = "INSERT INTO rssingest(item_id, feed_url, item_title, item_date, item_url, fetch_date) VALUES ('" . $item_id . "', '" . $feed_url . "', '" . $item_title . "', '" . $item_date . "', '" . $item_url . "', '" . $fetch_date . "')";
$insert_item = mysql_query($item_insert_sql, $db);
foreach ($words as $value) {
$word_exists_sql = "SELECT id FROM words WHERE word = '" . $value . "'";
$word_exists = mysql_query($word_exists_sql, $db);
if (mysql_num_rows($word_exists) < 1) {
$word_insert_sql = "INSERT INTO words(word, count) VALUES ('" . $value . "', '1')";
$insert_word = mysql_query($word_insert_sql, $db);
echo "<font color=green>Inserting word ".$value."..</font><br/>";
} else {
$word_update_sql = "UPDATE words SET count = count+1 WHERE word = '" . $value . "'";
$update_word = mysql_query($word_update_sql, $db);
echo "<font color=green>Updating count for word ".$value."..</font><br/>";
}
}
} else {
echo "<font color=blue>Not inserting existing item..</font><br/>";
}
echo "<br/>";
}
第一的foreach按预期工作,第二个只插入DB中的第一个RSS项目的第一个字,即使回声的对于剩下的单词显示正确。
我错过了什么?
[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护,[弃用过程](http://j.mp/Rj2iVR)已经开始。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –