2011-08-19 17 views
0

私はこのスクリプトでちょっとしたバグがあります。私はカートのアイテムを通って隠された入力にそれらを渡しています。 cart_id($ obj-> id)はvalue = ""では正常に動作しますが、各値に一意の名前= ""(cart_id_1、cart_id_2など)を与える繰り返しループは反復しません。php隠された入力のitertationループが反復しない

<?php   

      $pass_cart_q = "SELECT c.id FROM carts AS c WHERE c.user_session_id='$sid'"; 
      $result = $mysqli->query($pass_cart_q); 

        $i = 1; 
       while ($obj = $result->fetch_object()) { 

        echo "<input type=\"hidden\" name=\"cart_id_".$i."\" value=\" .$obj->id. \"><br>"; 
        $i = $i++; 
       } 
       mysqli_close();?> 

それぞれの名前のフィールドには、ちょうど$i++$i = $i++;を交換してくださいとしてcart_id_1

+0

大括弧で囲まれた隠しフィールドを配列にキャストすることができます。名前= "name []" ...値を上書きすることを前提として動作していましたが、これが機能するかどうかはわかります。 – shotdsherrif

答えて

2
$i=$i++; 

だけで行います。あなたは$i変数にインクリメントされた値を代入している

$i++ 
2

て来ています。 「$iから$iを等しくすると、その後1でそれを増やす」が、$iは依然として同じままになります:文字通り、これを、それを原因となります何$i = $i++

$i = 1; 
$i = $i++; 

echo $i, "\n"; // 1 

$i = 1; 
$i = ++$i; 

echo $i, "\n"; // 2 

$i = 1; 
$i++; 

echo $i, "\n"; // 2 

$i = 1; 
++$i; 

echo $i, "\n"; // 2 
+0

インクリメント演算子VAR ++はVARの値を返し、その後VARの値を1増加します。すでにVAR ++を推奨値またはVAR = ++ VARとして使用して、すでに増加した値を取得することもできます。 – feeela

+0

はい!興味深いのは '$ i = $ i ++'で、左側の '$ i'に右側の' $ i'の値を代入した後に、インクリメントが '$ i'の左辺で動作しないことです。当時、同じ変数名には2つの異なる参照があります。 –

0

。これを解決するには、$i = $i++;$i++に置き換えます。問題のだ

Manual Entry

+0

なぜ '$ i'も同じままになるのですか? –

0

。したがって反復することはできません。代わりに、代入変数$iを削除してください。$i++

関連する問題