我有以下代码:
$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)的查询。怎么做才能运行提交的所有值?
感谢。
答案 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。返回将导致循环立即停止。