2014-03-03 26 views
0
if(count($search)==0) { 
    for($i=0;$i<count($about);$i++) { 
     $bd->insert("search","page_title,page_description,page_url,image_id","'About','{$about[$i]['image_title']}','http://religiousbrands.in/demo/about.php?search=".$about[$i]['id']."','{$about[$i]['uniq_id']}'"); 
      } 
      } else { 
      for($i=0;$i<count($about);$i++) { 
       for($k=0,$j=0;$k<=$i,$j<count($search);$j++,$k++) { 
        if($search[$j]['image_id']==$about[$i]['uniq_id']) { 
         echo "update".$i.'and'.$k.'and'.$j; 
         echo"<br>"; 

         $bd->update("search", 
            "page_title='About',page_description='{$about[$i]['image_title']}',page_url='http://religiousbrands.in/demo/about.php?search=".$about[$i]['id']."' ","image_id='{$about[$i]['uniq_id']}' limit 1"); 
        } 

       } 
      } 
      } 

$ search是我從我的數據庫中獲得的一個數組。第一餘米檢查,如果搜索表是空的。如果爲空,則將值插入搜索表中。 $約也是我從我的數據庫中得到一個數組。如果$ search不爲空然後我正在更新該值,但首先檢查$ search [$ j] ['image_id'] === $ about [$ i] [uniq_id]並且這裏是我的問題START:對於兩個表的循環

假設在我的表大約有3項,即: uniq_id = 1 uniq_id = 2 uniq_id = 3 和我的表中的搜索有2項,即: image_id = 1個 image_id = 2 所以搜索表不是空的所以它會遵循第二個條件。所以,我試圖約[1] [ 'uniq_id']應該檢查$搜索[1] [ 'image_id']和$搜索[2] [ 'image_id']和等$搜索[$ i] [」該表$ image_id']如果表有任何值 ,但我的循環不工作就像我想這樣任何人都可以幫助我在這

回答

0

你需要知道「搜索」表中需要添加(INSERT ),哪些需要更新。

也許嘗試通過「搜索」陣列第一循環和發現你有哪些「image_id」的價值觀。

$image_ids = array(); 
foreach ($search as $item) {  
    $image_ids[] = $item['image_id']; 
} 

接下來,通過「約」數組循環。使用「$ image_ids」數組中的ID,以確定是否需要UPDATEINSERT的項目。

foreach ($about as $item) { 
    if (in_array($item['image_id'], $image_ids)) { 
     // Item already exists. Update it. 

    } else { 
     // Item doesn't exist. Add it. 

    } 
} 

這比將循環放在循環內快得多。