2016-03-31 9 views
0

PHP/MySql sürümünde yeni - ve bazı dizgi girişlerini saklamak için bir veritabanı oluşturmaya çalışarak öğreniyorum.Kullanıcıyı bir ekleme eki olarak güncellemek için bir yol var mı?

Tüm iyi çalışıyor - Formumda 3 kullanıcı girişi var: class, keywords, usrstring Veritabanıma sorunsuz bir şekilde eklendi. gerçi

iki sorun,:

# 1) Bu kullanıyorum MySQL fonksiyonudur:

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

Ama ben duplicate key update istediğim tek bir satır class ve keywords maçı hem eğer . Bir OR örneği değil, ya class ya da keywords eşleşiyorsa, satır güncellenir. AND örneğini elde etmek için doğru sözdizimi bu mu?

$("#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 

     } 
     }); 

}); 

Ben bir uyarı oluşturma işlemini kesintiye uğratabilir nasıl şöyledir:

# 2 Ben bir ajax yazı aracılığıyla form verilerini yolluyorum ana dizin sayfasına geri yeniden yönlendirir/orijinal form sayfasından, kullanıcının çift girdiden haberdar olmasını istemek ve girişi iptal etmeyi sürdürmek için bir seçenek verilir (giriş tamamlanmadan önce class veya keywords değiştirme şansı verir mi?

+0

** UYARI **: Sadece PHP öğrenme ediyorsanız, http://php.net/manual/en/function.mysql-query ([mysql_query' '] eskimiş öğrenmek etmeyiniz .php) arabirim. Bu korkunç ve PHP 7'de kaldırıldı. [PDO gibi bir şey öğrenmek zor değil] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo- veritabanı için erişim /) ve [PHP The Right Way] (http://www.phptherightway.com/) gibi bir kılavuz, en iyi uygulamaları açıklamaya yardımcı olur. ** emin olun ** kullanıcı parametreleriniz [düzgün bir şekilde kaçtı] (http://bobby-tables.com/php) veya ciddi [SQL enjeksiyon hataları] ile sonuçlanacaksınız (http://bobby-tables.com/). – tadman

+0

Yani (sınıf, anahtar kelimeler) üzerinde birleşik bir anahtarınız var, değil mi? (Elbette normalleştirilmiş bir ortamda olmasına rağmen, anahtar kelimeler olarak adlandırılan bir sütuna sahip olmazsınız) – Strawberry

+0

@tadman - Uyarı ve referanslar için teşekkürler. Ben gerçekten 'mysqli' kullanıyorum ve karakter kaçan girdilerle doğru fırçalama hakkında okudum (birçok kişi kaçan karakter kaçmak gibi görünüyor). Şimdiye kadar, işleri güvenli tutmak için sadece bir xampp localhost ortamında çalışıyorum. – user1837608

cevap

0

Kodum, bir kullanıcı bir Zaten kayıtlı e-posta. E-posta çift olduğunda uyarı.

$ 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"); 
      } 
     } 
İlgili konular