我有这个代码,将检查月份,例如。 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!";
}
}
答案 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!";
}
}