使用 for / foreach 循环进行更新


Update with a for / foreach loop

我在更新脚本的一部分时遇到了一些问题。

我有一个网页,用户可以在他们想要"回收"以用于其他用途的每个用户旁边标记复选框。

我将用户 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 语句并确保它正在执行您认为的操作。