Foreach只从Array获取第一个值

时间:2011-08-26 20:29:52

标签: php loops foreach submit

我有以下代码:

         $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;

$ referrals变量发布了两个值(10,11)。但是当我将它放在foreach循环中时,它只会运行带有第一个值(10)的查询。怎么做才能运行提交的所有值?

感谢。

4 个答案:

答案 0 :(得分:3)

你的for循环中有一个return 100。它在第一次迭代时终止循环。

return语句终止封闭函数。如果需要返回多个结果,请考虑将它们推送到数组上,然后在完成后返回数组。

答案 1 :(得分:2)

您在每个

结束前都会返回代码
     return 100; //HERE
 endforeach;

你可能想要:

endforeach;
return 100;

答案 2 :(得分:0)

所以你有两个价值观,那么你会爆炸吗? :O但我认为你的意思是$ array。

您将从该函数返回return 100,并从foreach返回。

答案 3 :(得分:0)

你在循环的第一次迭代中从你所处的任何函数返回100。返回将导致循环立即停止。