我有一个数组($ updateInputs),包含6个元素,6/2,每个元素属于数据库表中的一行。我正在尝试做的是在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] =&gt; foo1 [1] =&gt; moo1)数组([0] =&gt; foo1 [1] =&gt; foo2 [2] =&gt; foo3 [3] =&gt; foo4 [4] =&gt; foo5 [5] =&gt; foo6 [6] =&gt; moo1 [7] =&gt; moo2 [8] =&gt; moo3 [9] =&gt; moo4 [10] =&gt; moo5 [ 11] =&gt; moo6)0
数组([0] =&gt; foo1 [1] =&gt; foo2 [2] =&gt; foo3 [3] =&gt; foo4 [4] =&gt; foo5 [5] =&gt; foo6 [6] =&gt; moo1 [7] =&gt; moo2 [8] =&gt; moo3 [9] =&gt; moo4 [10] =&gt; moo5 [11] =&gt; 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);