2016-04-02 13 views
-1

Ich habe ein Formular, wo ich Studenten Login-Daten in eine Datenbank speichern. Das Formular enthält die Felder "admission_number", "username" und "password". Ich möchte einen Fehler anzeigen, wenn die Zulassungsnummer bereits existiert und ein Benutzer versucht, sie erneut hinzuzufügen. Hier ist mein PHP-Code zum Einfügen des Datensatzes.So verhindern Sie doppelte Daten in SQL-Datenbank

<?php 
     if(isset($_POST['submit'])) 
     { 
     $server  = 'localhost'; 
     $username = 'root'; 
     $password = ''; 

     $course_code=$_POST['course_code']; 
     $course_title=$_POST['course_title']; 
     $course_units=$_POST['course_units']; 
     $course_semester=$_POST['course_semester']; 


     $con=($GLOBALS["___mysqli_ston"] = mysqli_connect($server, $username, $password)); 
     if(!$con) 
     { 
     exit('Error: could not establish connection to the server'); 
     } 
     else 
     { 
     $con_db=((bool)mysqli_query($con, "USE esther")); 
     if(!$con_db) 
     { 
     exit('Error: Failed to connect to the database'); 
     } 
     else 
     { 
     if(!empty($course_code) && !empty($course_title) && !empty($course_units) && !empty($course_semester)) 
    { 
     $insert="INSERT INTO `course_table` VALUES('', '".$course_code."' ,'".$course_title."','".$course_units."','".$course_semester."')"; 
     $query=mysqli_query($GLOBALS["___mysqli_ston"], $insert); 
     $dup_admission_number = mysql_query("SELECT admission_number FROM users_table WHERE admission_number = $admission_number"); 
    } 
    if (@mysql_query($dup_admission_number)) { 
     echo 'Your admission number is already in our database.'; 
    exit; 
    } 

     if($query) 
     { 
       echo 'course added successfully!'; 
       header("location:add_course.php");  
     } 
     else { echo 'Error while adding Course.'; } 
    } 
    else 
    { 
     echo '*** fields cannot be blank ***.'; 
    } 
} 
} 
?> 
+1

Sie erkennen, dass Sie MySQL APIs hier abmischen. –

+0

mögliche Duplikate von [Kann ich MySQL APIs in PHP mischen?] (Http://stackoverflow.com/questions/17498216/can-i-mix-mysql-apis-in-php) –

+1

Sie geben auch vor Kopfzeile –

Antwort

0

Um zu überprüfen, Zulassungsnummer ist eindeutig oder nicht Sie unten Abfrage

$ sql auszuführen haben: "select id von Student wo admission_number = <> 0,1 limit";

Wenn diese Abfrage das Ergebnis anzeigt, ist die Zulassungsnummer des aktuellen Formulars nicht eindeutig.

Dieser Prozess können Sie mit AJAX-Anfrage tun, oder Sie können es überprüfen, bevor Abfrage einfügen wird Prozess.

oder Sie können es in mysql verwalten, indem Sie der Zulassungsnummer eine eindeutige Schlüsseleinschränkung geben.

+0

Haben Sie keinen der Kommentare gelesen, die unter ihrer Frage stehen? –

0

Dies ist die Mysql-Abfrage

INSERT INTO sometable (data1, data2, data13) 
    SELECT 'username' FROM sometable 
WHERE NOT EXISTS 
    (SELECT username FROM sometable WHERE login='someusername'); 
Verwandte Themen