2011-01-31 62 views
1

我有一個更新的用戶名,密碼,電話,usergenerated ID等的更新腳本執行更新腳本,因此,可以說用戶決定改變他/她的電話,但不是用戶名。但是當他們去編輯他們的信息時,上面提到的所有字段都出現在表單中。因此,也會隨用戶想要更改的內容一起提交。所以我使用下面的代碼來檢測。因此,如果該字段中的用戶名與從會話中拉出的用戶名相匹配,則表示可以繼續,如果不是則打印該用戶名已被佔用。但問題是我必須運行這個查詢兩次,一次爲用戶名,一次爲用戶唯一的id。當更新腳本位於頁面的底部時,它會變得更加複雜。下面的代碼會檢測到它,但它們會停止在回聲中。那麼,我該如何讓代碼檢查這些條件,然後在成功完成後指向更新查詢。只有在所有檢查完成

檢查1:

if ($username == $_POST['username') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 

檢查2:

if ($usergenid == $_POST['usergenid') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 
+2

你可以換一種說法,讀了兩遍,而且不知道你的actully要求。 – 2011-01-31 05:45:39

+0

對不起Dagon。現在編輯。 – AAA 2011-01-31 05:50:29

回答

1

也許我誤解的問題,但可以嵌套你的條件是什麼?

原始

$result = null; 

if($username == $_POST['username']) 
{ 
    if($usergenid == $_POST['usergenid']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'User updated'; 
     } 
     else 
     { 
     $result = 'Update failed'; 
     } 

    } 
    else 
    { 
     $result = 'User id already in use'; 
    } 
} 
else 
{ 
    $result = 'Username already in use'; 
} 

return $result; 

更新的用戶名,如果匹配的user_id

$result = null; 

if($usergenid == $_POST['usergenid']) 
{ 
    if($username != $_POST['username']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'username updated'; 
     } 
     else 
     { 
     $result = 'update failed'; 
     } 

    } 
    else 
    { 
     $result = 'username is the same, no update performed'; 
    } 
} 
else 
{ 
    $result = 'user id does not match'; 
} 

return $result; 
相關問題