2011-08-26 47 views
0

採取的第一個值我有以下代碼:的foreach只從Array

  $referrals = inputFilter($_POST['referralsIds']); 
     $array =explode(",",$referrals); 

     foreach($array as $key=>$value): 

      /
      $s=mysql_query("SELECT * FROM users WHERE upline='".$userdata['id']."' AND id='$value'"); 
      $num_rows=mysql_num_rows($s); 

      if($num_rows==0) 
       return 2; 

     // No error found and the update was succesful - Return success!    
      mysql_query("UPDATE users SET upline='' WHERE id='$value'"); 
      mysql_query("UPDATE users SET rbalance=rbalance-".$sdata['direct_delete_fee'].", direct_referrals=direct_referrals-1 WHERE username='".$userdata['username']."'"); 

      return 100; 

     endforeach; 

的$請示變量發佈兩個值(10,11)。但當我把它放在一個foreach循環,它會只運行帶有第一個值(10)的查詢。如何做到這一點,它貫穿所有提交的值?

謝謝。

+1

您的返回語句將在第一次運行時退出循環 – knittl

回答

3

您的for循環中有一個return 100。它在第一次迭代中終止循環。

return語句終止封閉函數。如果您需要返回多個結果,請考慮將它們推送到數組,然後在完成後返回數組。

+0

謝謝!現在正在工作。 –

0

所以你有兩個值,然後你爆炸它? :O但是我認爲你的意思是$ array。

你有return 100這將返回從該函數,以及從foreach。

2

你有你在年底前返回代碼爲每個

 return 100; //HERE 
endforeach; 

你可能想:

endforeach; 
return 100; 
0

你從你的任何功能上的第一次迭代返回100循環。返回將導致循環立即停止。