未定义的偏移错误0


Undefined offset error 0

我有这样的代码,它将检查月份(例如一月)是否为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!";
            }
    }
$row['january' == '0']

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

我想你是指

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

您不应该再使用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!";
    }
}