如何设置状态

时间:2010-03-18 15:28:52

标签: php mysql

这里我有一个问题,我想设置状态,无论是批准还是拒绝..条件是如果管理员选择注册号和驱动程序名称,这意味着状态是批准否则,如果管理员填写原因,这意味着请求被拒绝.. 这是设置状态的代码

if ($reason =='null'){

                $query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";
                $result2 = @mysql_query($query2);
    }
    elseif (($regno =='null')&&($d_name =='null')) {

                $query3 = "UPDATE usage SET status ='REJECT' WHERE '$bookingno'=bookingno";
                $result3 = @mysql_query($query3);
    }

当我保存数据时,状态字段不是更新..

3 个答案:

答案 0 :(得分:1)

两件事:

(1)'null'(带引号)是一个字符串。你可能只想要 null (和identity rather than an equality检查) - 或者更好的是,使用 is_null() isset() empty() (根据您的情况更合适)。

(2)如果您的状态字段是ENUM()(它应该是),请确保您已获得大写。通常它应该没关系,但如果你的表被设置为任何类型的二进制字符编码(*_bin Collation),它将会。

答案 1 :(得分:0)

看起来你的where子句格式不正确。改变这个:

$query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";

到此:

$query2 = "UPDATE usage SET status ='APPROVED' WHERE bookingno='$bookingno'";

(适用于$query2$query3)。

看看是否无法修复它。

答案 2 :(得分:0)

解决此问题的一种非常简单的方法是在查询字符串创建时记录

if ($reason =='null'){

    $query2 = "UPDATE usage SET status ='APPROVED' WHERE '$bookingno'=bookingno";
    $result2 = @mysql_query($query2);
    error_log($query2);

}
elseif (($regno =='null')&&($d_name =='null')) {

            $query3 = "UPDATE usage SET status ='REJECT' WHERE '$bookingno'=bookingno";
            $result3 = @mysql_query($query3);
            error_log($query3);
}

然后去检查在php错误日志文件中创建的查询字符串,如果查询不起作用,则本机运行查询,或者如果你使用mysql则运行phpmyadmin ....看看你是否收到错误。有时你会发现你的varibales没有按照意图填充,这将由日志文件显示。