2016-03-31 6 views
0

Neu in PHP/MySql - und lerne, indem ich versuche, eine Datenbank zum Speichern einiger String-Einträge zu erstellen.Gibt es eine Möglichkeit, den Benutzer auf einen Eintrag in ... Duplikate Updateeintrag hinzuweisen?

Alles funktioniert gut - ich habe drei Benutzereinträge in meinem Formular: class, keywords, usrstring die meiner Datenbank ohne ein Problem hinzugefügt werden. obwohl

Zwei Fragen:

# 1) Dies ist die MySQL-Funktion Ich verwende:

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

Aber ich will ein duplicate key update nur, wenn sowohl das class und keywords Spiel eine Reihe . Keine OR-Instanz, bei der die Zeile aktualisiert wird, wenn class oder keywords übereinstimmen. Ist das die korrekte Syntax, um die AND-Instanz zu erreichen?

# 2 Ich bin über eine Ajax-Post die Formulardaten zu senden, die mit der Hauptindexseite erneut zurückfliessen wie folgt:

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

     } 
     }); 

}); 

Wie kann ich den Prozess unterbreche einen Alarm erstellen/Aufforderung auf der ursprünglichen Formularseite, so dass der Benutzer über den doppelten Eintrag benachrichtigt wird und eine Option erhält, um den zu löschenden Eintrag weiterhin zu aktualisieren (geben Sie ihm die Möglichkeit, die class oder keywords vor der Eingabe zu ändern?

+0

** WARNUNG **: Wenn Sie nur PHP lernen, bitte, nicht lernen, die veraltete [ 'mysql_query'] (http://php.net/manual/en/function.mysql-query .php) Schnittstelle. Es ist schrecklich und wurde in PHP 7 entfernt. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps-pdo- for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) hilft Best Practices zu erklären. Machen Sie ** sicher ** Ihre Benutzer-Parameter sind [richtig maskiert] (http://bobby-tables.com/php) oder Sie werden mit schweren [SQL-Injektion Bugs] (http://bobby-tables.com/)). – tadman

+0

Sie hätten also einen zusammengesetzten Schlüssel (Klasse, Schlüsselwörter), oder? (Obwohl natürlich in einer normalisierten Umgebung würden Sie nie eine Spalte namens Schlüsselwörter haben) – Strawberry

+0

@tadman - Danke für die Warnung und Referenzen. Ich benutze tatsächlich 'mysqli' und habe über das richtige Scrubbing von Eingaben gelesen, bei denen Zeichen entkommen sind (obwohl viele Leute zu implizieren scheinen, dass das Entweichen von Charakter nicht ausreicht). Bis jetzt habe ich nur auf einer xampp localhost-Umgebung geübt, um die Dinge sicher zu halten. – user1837608

Antwort

0

Mein Code ist für eine Warnmeldung, wenn sich ein Benutzer bei einem registriert bereits registrierte E-Mail. Benachrichtigung, wenn E-Mail doppelt vorhanden ist

$ sql = mysql_query ("SELECT * VON 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"); 
      } 
     } 
Verwandte Themen