2017-02-17 84 views
1

如何檢查用戶是否已經創建了相同的LRN? 當我按下保存按鈕兩次它創建兩個用戶具有相同的信息
如何防止它?我如何防止使用相同的信息創建相同的用戶?

jQuery('#save_voter').submit(function(e){ 
e.preventDefault(); 
var FirstName = jQuery('.FirstName').val(); 
var LastName = jQuery('.LastName').val(); 
var Section = jQuery('.Section').val(); 
var Year = jQuery('.Year').val(); 
var LRN = jQuery('.LRN').val(); 
var Password = jQuery('.Password').val(); 

e.preventDefault(); 
if (FirstName && LastName && Section && Year && LRN && Password){ 
var formData = jQuery(this).serialize();  

jQuery.ajax({ 
    type: 'POST', 
    url: 'save_student.php', 
    data: formData, 
     success: function(msg){ 
     showNotification({ 
message: "Student Successfully Added", 
type: "success", 
autoClose: true, 
duration: 5 

}); 
+0

你必須檢查用戶是否存在插入前通過這樣做我們可以過濾數據.. – Sona

回答

5

通過在用戶名字段上創建一個唯一的約束。在你的情況下,似乎LRN字段是用戶名字段。通過

ALTER TABLE users ADD UNIQUE INDEX uname on users (LRN); 

然後你可以嘗試這樣的事情告訴最終用戶,該用戶名是重複的。

try{ 
    $res =$connection->query(your user insert); 
}catch(Exception $e){ 
    echo 'Sorry already exists'; 
} 
+0

謝謝你解決了我的問題:D但我怎麼能犯一個錯誤?它說「LRN已經存在」? – kangkong

+0

謝謝你:) – kangkong

+0

你是最受歡迎的。很高興得到了幫助 – e4c5

1

你需要做的3個步驟:

  • 檢查手動名字和姓氏已經存在或不PHP文件
  • ResultSet中含有大於0的記錄,則返回false,這意味着記錄已經存在。
  • 在JQuery中,如果其獲取false,則顯示錯誤消息record already exists

此外,正如@kongkang在評論中所說的,LRN字段是用戶名。

那麼你仍然需要做的3個步驟:

  • 作出這樣的字段作爲unique在數據庫表
  • 添加如果在插入查詢(PHP文件),如果返回條件爲假則意味着記錄已經存在
  • 在Jquery中,如果返回值爲false,則顯示錯誤消息。
+0

正確的解釋+1 –

+0

我不認爲這可以保證原子性。 –

+0

@HaotianLiu:你能解釋一下缺什麼嗎? –

0

添加一個唯一索引數據庫的唯一field.I希望LRN是有你。然後

MYSQL: 
ALTER TABLE users ADD UNIQUE (LRN) 
SQL SERVER: 
ALTER TABLE [users] ADD CONSTRAINT UC_LRN UNIQUE ([LRN]); 

當您嘗試插入重複LRN數據庫錯誤將自動爲Codeigniter。沒有它,你必須手動檢查。

相關問題