2010-03-18 102 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不會以滿意的方式填充,並且這些會被日誌文件顯示出來。