public function addToTransfer($data)
{
$countProductsAdded = $this->where('product_id', $data['product_id'])
->where('product_transfer_id', $data['product_transfer_id'])
->where('transfer_id', $data['transfer_id'])
->countAllResults();
for($i = $countProductsAdded; $i < $data['quantity']; $i++) {
$dataToUpdate = [
'transfer_id' => $data['transfer_id'],
'product_transfer_id' => $data['product_transfer_id'],
'status' => $data['status'],
'warehouse' => $data['new_warehouse']
];
$response = $this->set($dataToUpdate)
->where('product_id', $data['product_id'])
->where('status', 'instock')
->where('warehouse', $data['old_warehouse'])
->update();
}
return $response;
}
你好,我有一个问题,这个循环,我不明白什么可能是错的这里是一个黑盒子,现在我不明白什么是错的。
我会解释我检查了什么。
1.$countProductsAdded -正确返回(它正在计算数据库中已添加的结果)
1.$data ['quantity'] -正确返回(我想运行那个循环多少次)
我所期望的是,我调用quantity = 5的循环,我期望运行5次并从数据库中更新5行,这符合一些标准。
我得到的,完全不同:)),是从数据库中更新所有符合这些标准的行。
这对我来说是无法理解的,因为同样的循环,同样的逻辑也适用于插入调用
顺便说一句,这是php,codeigniter 4
1条答案
按热度按时间wa7juj8i1#
好了,伙计们,我发现了,基本上,我停止使用for循环,并尝试其他方法,我将在这里举个例子,也许它会帮助别人作为一个实际的例子