我在更新脚本的一部分时遇到了一些问题。
我有一个网页,用户可以在他们想要"回收"以用于其他用途的每个用户旁边标记复选框。
我将用户 id 存储在这样的数组中:
$refsid= explode(',',$_POST['referralIds']);
$users->_recycleMulti($membershipData['recycle_price'], $userdata['username'], $refsid);
然后,在我的_recycleMulti
功能中,我希望进行实际的回收。是仅选择一个用户,还是 10 个用户。因此,我正在使用for loop.
然而,它仍然只更新一个用户。
我的_recycleMulti函数如下所示:
function _recycleMulti($value, $username, $referrals_array){
for($i=0; $i < count($referrals_array); $i++){
mysql_query("do the update here");
}
return "success!";
}
var_dump($_POST['referralIds']);
正在返回:
string(3) "4,5"
这是正确的,因为我选中了两个复选框。ID 与数据库中的 ID 匹配。
var_dump($refsid); is returning:
array(2) { [0]=> string(1) "4" [1]=> string(1) "5" }
我做错了什么?
您可以将 for 循环更改为 foreach,尽管它应该不会在执行中产生影响
foreach ($referrals_array as $refid) {
echo "Updating referral ".$refid.".<br>'n";
// execute SQL code here using $refid value
}
这可能有助于您查看正在执行的内容,或者如果效果不够好,请回显您的 SQL 语句并确保它正在执行您认为的操作。