1

コンマ区切りの文字列変数から爆発を使用して配列を作成しました。次に、配列内のデータにアクセスする必要があります。

私が使用した:

print_r($values); // to see how the data was stored
//output
Array ( 
  [0] => Array ( 
         [0] => 1rv09is001 
         [1] => 07IS72 ) 
  [1] => Array ( 
         [0] => 1RV09IS064   
         [1] => 07IS72 ) 
)

私は試した:

$a = count($values);
for($i;$i<$a;$i++){
$sql="UPDATE subject 
      SET attendance=attendance+1 
      WHERE usn=$values[$i][0] AND subCode=$values[$i][1]
     ";

echo "$sql";
mysql_query($sql);
}

機能していません。

4

3 に答える 3

1

文字列内で使用する場合、複雑な変数名 (または配列) を中括弧で囲む必要があります。'また、MySQL の文字列は、引用符 (singleまたは double ")で指定する必要があります。

$a = count($values);
for ($i = 0; $i < $a; $i++) {
    $sql = "UPDATE subject SET attendance=attendance+1 WHERE usn='{$values[$i][0]}'  AND subCode='{$values[$i][1]}'";
    echo "$sql";
    mysql_query($sql);
}

$iまた、 for ループで使用する場合は値で初期化する必要があります。

于 2012-11-03T12:11:58.863 に答える
0

SQLに入る文字列を引用する必要があります(また、それらをエスケープする必要があります)。 http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html

于 2012-11-03T12:13:12.480 に答える
0

SQL ステートメントを更新します。

$sql = "UPDATE subject SET attendance = attendance+1 where usn='" . $values[$i][0] . "' and subCode='" . $values[$i][1] . "'";

私が見る限り、$values には文字列値が含まれており、SQL で引用する必要があります。" . $variable . "さらに、配列アクセスをエスケープすると便利です。

ローカルでテストし、動作します。

于 2012-11-03T12:08:22.640 に答える