2011-01-30 48 views
0

我正在做一個窗體的更新腳本。當用戶信息在註冊時提交,其提交給用戶數據庫,其中包含以下字段,用戶名,密碼,全名和電話號碼。例如,當用戶更新表單以更改他/她的名字時,用戶名,密碼,遠程字段也是更新表單的一部分。因此,當用戶在更新表單上更新他或她的電話號碼時,用戶名信息和通行信息以及姓名信息也會出現在表單上。問題是系統認識到用戶名已被佔用。MYSQL更新值識別

那麼我該如何更新我的腳本,以便更改值應該被系統拾取。還是有更好的方法來做到這一點?

代碼:

  if (!get_magic_quotes_gpc()) { 
      $_POST['username'] = addslashes($_POST['username']); 
     } 
     $idcheck = $_POST['username']; 
     $check = mysql_query("SELECT username FROM users WHERE username = '$username'") 
      or die(mysql_error()); 
     $check2 = mysql_num_rows($check); 


     if ($check2 != 0) { 
     print("username already taken"); 
     die(''); 
      } 

基本上問題是它識別出值已存在,但它並沒有意識到它的相同用戶信息不使用一個共同的ID或用戶名其他一些用戶...

+0

用戶是否應該能夠在表單中更改他們的用戶名?如果沒有,你不需要更新它。 – 2011-01-31 11:41:33

回答

1

剛剛從更新腳本刪除以下代碼:

$idcheck = $_POST['username']; 
$check = mysql_query("SELECT username FROM users WHERE username = '$username'") or die(mysql_error()); 
$check2 = mysql_num_rows($check); 

if ($check2 != 0) { 
    print("username already taken"); 
    die(''); 
} 

,事情應該罰款即可。

如果您有與註冊和更新相同的腳本,我建議您製作兩種不同的腳本,因爲這是一種更好的做法。

最佳, 卡姆蘭

+0

對不起卡姆蘭。粘貼了錯誤的代碼。現在更新。 – AAA 2011-01-30 16:21:01

+0

好吧,我將編輯我的答案,並記住更新後的代碼=) – thesocialgeek 2011-01-31 08:44:03

1

我想你發佈的代碼是以前吧,如果你的意思是檢查用戶名已經採取了在用戶決定改變自己的用戶名的情況下,只需要運行這段代碼您現在在UPDATE語句之前發佈,這將會在用戶名無誤的情況下運行(或者允許它在更改其他文件的同時離開舊用戶名並回顯已經使用的用戶名的警告)