2010-03-18 99 views
1

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

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

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

+1

查询是否正在执行?你可以从'@ mysql_query'中删除'@'来查看是否有任何错误?另外,你可以发布'$ reason','$ regno'和'$ d_name'这些代码来填充值吗? – 2010-03-18 15:33:56

+1

如果您还可以指出状态字段的数据类型是什么。您可以将$ Query2赋值和$ results2放在IF语句之外执行,会发生什么情况? – SnapJag 2010-03-18 17:00:52

回答

0

你有看起来你的where子句格式不正确。更改此:

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

这样:

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

(用于$query2$query3)。

看看是否没有解决它。

+2

为什么WHERE子句中列/值的顺序很重要(快速测试证明它至少在MySql 5中没有任何区别) – 2010-03-18 15:36:01

+0

@inkedmn:它仍然没有工作 @marek:你的意思是?我不明白你说了什么:-) – user273551 2010-03-18 15:48:26

+0

@ ejah85 - 我的评论是为了回应inkedmn的回答。在MySql中,如果在'where'子句中写入''$ bookingno'= bookingno'(值先列名称)或'bookingno ='$ bookingno''(列先为值),则似乎并不重要( – 2010-03-18 15:50:37

1

两件事情:

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

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

+1

1)甚至是is_null http://uk2.php.net/manual/en/function.is-null.php – 2010-03-19 17:55:35

+0

与空身份检查相同的东西,但是,很好!我会编辑它。谢谢! – pinkgothic 2010-03-19 18:01:15

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的错误日志文件创建的查询字符串,如果查询不工作,然后运行本地查询您的数据库或phpmyadmin如果您使用MySQL ....看看你是否有错误。有时你会发现你的varibales不会以满意的方式填充,并且这些会被日志文件显示出来。