You need to move your insertion query into your 'else' structure. Right now you've got an empty query there. Then below, you do the insertion even if there was already $IDcode in the users table.
Change this:
// connexion to database and table //
$db = mysql_connect($host, $login, $password) or die ('Error : '.mysql_error());
mysql_select_db($base, $db) or die ('Error : '.mysql_error());
// Check IDcode already in database //
$query = "SELECT $IDcode FROM users WHERE IDcode = '$IDcode'";
$result = mysql_query($query ,$db);
$num_rows = mysql_num_rows($result);
if ($num_rows>0) {
print ("Sorry - this IDcode is already in use!");
} else {
$query = "";
$result = mysql_query($query);
}
// End of Check IDcode already in database //
// Requ?te SQL //
$sql = 'INSERT INTO users VALUES("","'.$Fname.'","'.$Lname.'","'.$IDcode.'","'.$Region.'","'.$Depart.'")';
$result = mysql_query($sql) or die ('Error : '.mysql_error() );
// close database and table //
mysql_close();
to this:
// connexion to database and table //
$db = mysql_connect($host, $login, $password) or die ('Error : '.mysql_error());
mysql_select_db($base, $db) or die ('Error : '.mysql_error());
// Check IDcode already in database //
$query = "SELECT $IDcode FROM users WHERE IDcode = '$IDcode'";
$result = mysql_query($query ,$db);
$num_rows = mysql_num_rows($result);
if ($num_rows>0) {
print ("Sorry - this IDcode is already in use!");
} else {
// Requ?te SQL //
$sql = 'INSERT INTO users VALUES("","'.$Fname.'","'.$Lname.'","'.$IDcode.'","'.$Region.'","'.$Depart.'")';
$result = mysql_query($sql) or die ('Error : '.mysql_error() );
}
// End of Check IDcode already in database //
// close database and table //
mysql_close();