2012-09-27 65 views
0

這是mycode的我使用foreach語句裏面的foreach但值重複

foreach($html->find('ul.listings li a') as $tvshow) 
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext); 
foreach($html->find('li a span.epnum') as $e) 

    $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
       values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')"); 
    if(!$query) 
    { 
     die(mysql_error()); 
    } 

這裏$ tvshows,$ tvshow->的href都在重複,我不想他們重複。不要擔心的代碼一切都是正確的只使用兩個foreach語句使重複。請使代碼不重複。

+0

你能解釋一點嗎?我不明白你問什麼。 – Tchoupi

+0

我已編輯它請檢查出來 – Siva

+1

是你的代碼的直接削減?從那個片段中,第2行是在頂端的foreach中,第二個foreach在外面,只有第5行被應用到它。在{}中封裝應用程序代碼,以便foreach封裝正確的代碼。 – Flosculus

回答

2

大括號的力量......

foreach($html->find('ul.listings li a') as $tvshow) { 
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext); 

    foreach($html->find('li a span.epnum') as $e) { 

     $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
        values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')"); 
     if(!$query) 
     { 
      die(mysql_error()); 
     } 
    } 
} 

這是我懷疑你的foreach的不築巢,因爲你沒有用大括號括起來像你應該有。

你寫他們的方式,它會將它們解釋爲完全獨立的循環。

環路1:

foreach($html->find('ul.listings li a') as $tvshow) 
    $tvshows=preg_replace('/<span[^>]*>([\s\S]*?)<\/span[^>]*>/', '', $tvshow->innertext); 

迴路2:

foreach($html->find('li a span.epnum') as $e) 

     $query=mysql_query("insert into tvshow(count,author,tvshowname,imdblink,tvshowlink,description,year,image,imagetype,website,date,rating) 
        values('$count','$author','$tvshows','$imdblink','$tvshow->href','$tvshowdescription','$e->innertext','$tvshowname','$tvshowtype','$website','$date','$rating')"); 
     if(!$query) 
     { 
      die(mysql_error()); 
     } 

有意義嗎?

+0

如果我使用捲曲brraces值重複5次多一次 – Siva

+0

然後我不知道你要找什麼樣的答案。您的問題標題是**我在foreach語句中使用foreach,但值重複**,所以我認爲問題是您的foreach循環實際上不在彼此內部。如果這不能解決你的問題,答案就在你的代碼中。 Fankly,你提供的代碼示例讓我想知道你可能做了什麼其他語法上美味的錯誤。 – jdstankosky

+0

我的問題解決了,Tq jdstankosky試圖幫助我。這裏是我如何解決的代碼。 – Siva