1

我已经使用从逗号分隔的字符串变量中的explode 填充了一个数组。现在我需要访问数组中的数据。

我用了:

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 中的字符串需要用引号(单引号'或双引号")指定:

$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);
}

此外,在 for 循环中使用时,您需要$i使用一个值进行初始化。

于 2012-11-03T12:11:58.863 回答
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 回答
0

You should quote strings that goes into your sql (also you should escape them). http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html

于 2012-11-03T12:13:12.480 回答