未定义的偏移量错误0

时间:2014-09-11 15:42:30

标签: php mysql sql

我有这个代码,将检查月份,例如。 january的值为0,如果为true,它将执行更新查询。

但是我收到了这个错误"注意:未定义的偏移量:0"

$value_result = mysql_query("SELECT form_no FROM table_2014 WHERE form_no = '$formnumber'");
    while($row = mysql_fetch_assoc($value_result)){
        if ( $row['january' == '0']){
            $sql = "UPDATE `table_2014` SET january = '$contri_amnt' WHERE form_no = '$formnumber'";
            if (!mysql_query($sql,$con))
            {
                die('Error: ' . mysql_error());
            }
        }
        else{
            echo "Already contributed!";
            }
    }

2 个答案:

答案 0 :(得分:5)

$row['january' == '0']

将返回$row[false],即$row[0]

我认为你的意思是

$row['january'] == '0'

答案 1 :(得分:-1)

你不应该再使用mysql_ *函数了。他们被弃用+他们是不安全的,因为你不必逃避任何事情。我建议你改用PDO并准备好陈述。

你应该这样做:

$value_result = mysql_query("SELECT form_no FROM table_2014 WHERE form_no = '".(int)$formnumber."'");
//guessin that the fields where all integers, since compareing against a "0"
while($row = mysql_fetch_assoc($value_result)) {
    if ( isset($row['january']) && $row['january'] == '0') {
        $sql = "UPDATE `table_2014` SET january = '".(int)$contri_amnt."' WHERE form_no = '".(int)$formnumber."'";

        if (!mysql_query($sql,$con)) {
            die('Error: ' . mysql_error());
        }
    }
    else {
        echo "Already contributed!";
    }
}