2013-02-18 72 views
0

我對下面的函數感到非常沮喪。它沒有更新我的數據庫中的標誌。我曾嘗試將這些和零引入中間引號中,而不是。我將該字段設置爲數據庫中的小整數。你看到我在做什麼錯了嗎?該條目是存在的,但1不更新爲0查詢錯誤更新字段mysql

function postValue(){ 
    global $customerID; 
    $query="SELECT flag FROM welcomecall WHERE customerID= '$customerID'"; 
    echo $query; 
    $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
    while ($row = mysql_fetch_assoc($result)) { 
    echo "The customer flag is ". $row["flag"]; 
    } 

    if ($row['flag']=='0'){ 
    $query="UPDATE welcomecall SET flag='1' WHERE customerID='$customerID'";    
    $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
    } 
    else if($row['flag']=='1'){ 
    $query="UPDATE welcomecall SET flag='0' WHERE customerID='$customerID'";    
    $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
    } 
} 
+0

不要使用'mysql_ *'功能。他們已棄用!改用'mysqli_ *'或PDO。 – EmCo 2013-02-18 21:49:24

回答

2

while表達退出,將沒有$row左:

while ($row = mysql_fetch_assoc($result)) { 

所以這不會是真的:

if ($row['flag']=='0'){ 

考慮在while循環內移動if語句。

0

看起來像您使用的循環之外的邏輯,你的循環內屬於:

function postValue(){ 
    global $customerID; 

    $query="SELECT flag FROM welcomecall WHERE customerID= '$customerID'"; 
    echo $query; 

    $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
    while ($row = mysql_fetch_assoc($result)) { 
     echo "The customer flag is ". $row["flag"]; 

     // Moved 
     if ($row['flag']=='0'){ 
      $query="UPDATE welcomecall SET flag='1' WHERE customerID='$customerID'";    
      $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
     } 
     else if($row['flag']=='1'){ 
      $query="UPDATE welcomecall SET flag='0' WHERE customerID='$customerID'";    
      $result = mysql_query($query) or die('Error in the query: ' . mysql_error()); 
     } 
    } 
}