2016-08-15 18 views
0

スクリプトはすでに正常に動作していますが、ユーザー名がまだ使用されていない場合にのみ許可するコマンドを挿入します。HTML PHP - ユーザー名が既に存在するかどうかを確認する方法

if (isset($_POST['submit'])) { 
    $firstname = htmlentities($_POST['firstname'], ENT_QUOTES); 
    $lastname = htmlentities($_POST['lastname'], ENT_QUOTES); 
    $position = htmlentities($_POST['position'], ENT_QUOTES); 
    $username = htmlentities($_POST['username'], ENT_QUOTES); 
    $password = htmlentities($_POST['password_two'], ENT_QUOTES); 
    $uniqid = uniqid('', true); 
    if ($firstname == '' || $lastname == '' || $position == '' || $username == '' || $password == '') { 
     $error = 'ERROR: Please fill in all required fields!'; 
     renderForm($error, $firstname, $lastname, $position, $username, $password); 

    } else { 
     if ($stmt = $connection->prepare("INSERT INTO employee (uniqid, firstname, lastname, position, username, password) VALUES (?, ?, ?, ?, ?, ?)")) { 
      $stmt->bind_param("ssssss", $uniqid, $firstname, $lastname, $position, $username, $password); 
      $stmt->execute(); 
      $stmt->close(); 
     } else { 
      echo "ERROR: Could not prepare SQL statement."; 
     } 
     header("Location: regemployee.php"); 
    } 
} else { 
    renderForm(); 
} 
+0

eデータベースには、ユーザー名が表示された状態でチェックが選択されており、クエリーが値0を返した場合は、挿入せずにエラーメッセージを挿入することができます。 –

+0

'YOUR_TABLEからの選択カウント(*)YOUR_CONDITION' –

+0

elseパーツでは、テーブルからデータを選択した後に他のパーツと同じようにします。 'if($ count == 0){//コードを挿入する} else {//ここにエラーメッセージが出ます}'。 –

答えて

1

DBでユーザー名を一意にすると、再度同じユーザー名をDBに挿入しようとすると、挿入によってエラーが発生します。

別の方法としては、SELECT * FROM employee WHERE username = ?を行い、その結果が> 0

次に、あなたはそれがすでに存在している知っているかどうかを確認できます。

+0

ユーザ名は一意です。私のコードplsにあなたの答えを挿入することができます – Maki

0

提出usernameがすでに存在しているかどうかを確認する別のSELECTクエリ実行します。

$stmt = $connection->prepare("SELECT * FROM employee WHERE username = ?"); 
$stmt->bind_param("s", $username); 
$stmt->execute(); 

を次に結果の数を取得:それはまだない場合という条件を作成し、その後

$stmt->store_result(); 
$noofres = $stmt->num_rows; 
$stmt->close(); 

を存在する場合は、挿入クエリを実行します。

if($noofres == 0){ 

    /* INSERT QUERY HERE */ 

} else { 

    echo 'Username already taken.'; 

} 
+0

どこに私は新しいSQLクエリを挿入するのですか? – Maki

+0

あなたのスニペットをどこに挿入するかについてのコードはどうですか?ありがとう – Maki

+0

こんにちはあなたはそこにいますか? – Maki

関連する問題