我有一个包含 6 个元素的数组 ($updateInputs),6 / 2,每 3 个元素属于数据库表中的一行。我想要做的是将查询放在一个while循环中,以便每次迭代,索引都将正确放置在接下来的3个元素中。$i 从 0 开始,每个循环都得到 + 1。我正在尝试执行以下操作,但它只会使我的网站崩溃:
$tempMult = $i*3;
$updatedInputs = $_REQUEST['UPDATEDtoy'];
$query = "UPDATE TOY
SET TOYID='$updatedInputs[0 + $tempMult]', TOYName='$updatedInputs[1 + $tempMult]', TOYprice='$updatedInputs[2 + $tempMult]',
TOYmanufacturer='$updatedInputs[3 + $tempMult]'
WHERE TOYID='$exactID[$i]'";
还有其他方法可以解决这个问题吗?我只需要它,以便第二个循环,索引将从 3->4->5 开始。我认为不可能在查询中进行操作?任何帮助表示赞赏
编辑(完整版):这是我使用时返回的内容
print_r($updatedInputs);
$tempMult = $i*6;
echo "$tempMult <br>";
我得到:
数组 ( [0] => foo1 [1] => moo1 ) 数组 ( [0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5 [5] => foo6 [6] => moo1 [7] => moo2 [8] => moo3 [9] => moo4 [10] => moo5 [11] => moo6 ) 0
数组 ( [0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5 [5] => foo6 [6] => moo1 [7] => moo2 [8] => moo3 [9] => moo4 [10] => moo5 [11] => moo6 ) 6
如您所见,0 和 6 是正确的(在 12 个元素的情况下)。它被打印两次,因为有 2 个循环
EDIT2(临时 NOOB 解决方案):
在我看到答案之前,我只是将其用作临时 noobie 解决方案:
$a = 0 + $i*6;
$b = 1 + $i*6;
$c = 2 + $i*6;
$d = 3 + $i*6;
$e = 4 + $i*6;
$f = 5 + $i*6;
$updatedInputs = $_REQUEST['UPDATEDtoy'];
$query = "UPDATE TOY
SET TOYID='$updatedInputs[$a]', TOYName='$updatedInputs[$b]' ...
WHERE TOYID='$exactID[$i]'";
$result = mysqli_query($link, $query);