0

我有一个包含 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);
4

1 回答 1

-1

使用PDO。请参阅链接中的示例。您只需要将已计算的变量传递给 PDO,它就会自动将它们插入到您的查询中。

于 2013-06-12T02:36:55.380 回答