0

6 つの要素を持つ配列 ($updateInputs) があり、6/2 の各 3 がデータベース テーブルの 1 つの行に属しています。私がやろうとしているのは、クエリを 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]'";

これについて別の方法はありますか?2 番目のループで、インデックスが 3->4->5 で始まるようにするだけです。クエリ内で操作を行うことはできないと思いますか? どんな助けでも大歓迎です

EDIT(フルバージョン):これは私が使用したときに返されるものです

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 つのループがあるため、2 回印刷されます。

EDIT2 (一時的な NOOB ソリューション):

答えが表示されるまで、これを一時的なヌービーソリューションとして使用します。

$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 に答える