如何在PHP中从数组中检索数据

时间:2012-11-03 12:04:24

标签: php mysql arrays string

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

我用过:

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

它不起作用。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

更新您的SQL语句:

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

据我所知,$ values包含String值,需要在SQL中引用。此外,转义" . $variable . "数组访问很有帮助。

在本地测试它并且有效。

答案 2 :(得分:0)

你应该引用进入你的sql的字符串(你也应该逃避它们)。 http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html