2016-03-31 46 views
0

PHP/MySql的新手 - 我正在通過嘗試使數據庫存儲一些字符串條目來學習。有沒有辦法提醒用戶插入...重複更新條目?

所有工作正常 - 我在我的表單中有三個用戶條目:class,keywords,usrstring它們被添加到我的數據庫沒有問題。

兩個問題,雖然:

#1)這是我使用的MySQL的函數:

$sql = "INSERT INTO `reporting` (class, keywords, usrtext) VALUES (\"$class\", \"$keywords\", \"$usrtext\") ON DUPLICATE KEY UPDATE `usrtext` = \"$usrtext\" "; 

但我想一個duplicate key update只有兩個classkeywords匹配的行。不是OR實例,如果classkeywords匹配,則該行會更新。這是實現AND實例的正確語法嗎?

#2我通過Ajax後,其發送表單數據重新引導回主索引頁面如下:

$("#formdata").submit(function(e) { 

    var url = "posted.php"; // the script where you handle the form input. 
    e.preventDefault(); // avoid to execute the actual submit of the form. 

    $.ajax({ 
      type: "POST", 
      url: url, 
      data: $("#formdata").serialize(), // serializes the form's elements. 
      success: function(data) 
      { 
      window.location.href = 'index.php?=successfullyadded'; 
      alert(data) ; 
      $("#formdata")[0].reset(); // reset form and clear all hidden inputs 

     } 
     }); 

}); 

我怎麼能中斷的過程中創建一個警報/提示,以便通知用戶重複條目,並且可以選擇繼續更新條目以取消(讓他們有機會在條目完成之前更改classkeywords

+0

** WARNING **:如果你剛開始學習PHP,請不要學過時['mysql_query'](http://php.net/manual/en/function.mysql-query .php)界面。這很糟糕,並且已經在PHP 7中被刪除了。像[PDO不是很難學的東西](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-php-pdo- for-database-access /)以及[PHP The Right Way](http://www.phptherightway.com/)等指南有助於解釋最佳實踐。確保**你的用戶參數[妥善轉義](http://bobby-tables.com/php),否則你將以嚴重的[SQL注入漏洞](http://bobby-tables.com/ )。 – tadman

+0

所以你會有一個複合鍵(類,關鍵字),對不對? (雖然當然在規範化的環境中,你永遠不會有一個名爲關鍵字的列) – Strawberry

+0

@tadman - 感謝您的警告和參考。我確實在使用'mysqli',並且已經閱讀了有關字符轉義輸入的適當擦除(儘管很多人似乎暗示字符轉義是不夠的)。到目前爲止,我只在xampp localhost環境中練習以保證安全。 – user1837608

回答

0

我的代碼是用於在用戶註冊時提醒消息已經註冊郵箱。當電子郵件重複時提醒。

$ sql = mysql_query(「SELECT * FROM admin WHERE email ='$ Email'」); $ numrow = mysql_num_rows($ sql);

 if($numrow > 0){ 


     echo '<script type="text/javascript">alert("That Email is already exits !!Try another Email"); 
     history.back();</script>'; 

     } 
     else{ 

      $staffInsert_sql = mysql_query("Insert Into admin(name,gender,password,confirmpw,email,address,reg_date) 
       VALUES ('$Name','$gender','$password','$confirmpw','$Email','$Address',now() 
       )"); 
      if ($staffInsert_sql) { 
       echo "<script language=\"javascript\"> alert('Save Successfully One Record');</script>"; 
       header("location:success_register.php"); 
      } 
     } 
相關問題