1

5列のテーブルがあります。ID、名前、姓、会社、役職。

だから私が今やりたいことは、提出プロセス中に重複したエントリをチェックし、名前と姓の組み合わせの一致を比較することです. これにより、重複エントリの警告が表示され、続行してデータベースに保存するか、コンテンツの送信をキャンセルするかを選択できます。

前もって感謝します。

4

2 に答える 2

0

これが私が試したものですが、質問に記載されているオプションの選択コードはまだわかりません。

$query = "INSERT INTO phptablo (Name, Surname, Company, Title) VALUES ('$name', '$surname', '$company', '$title')";

$sql = "SELECT Name AND Surname FROM phptablo WHERE Name = '$name' AND Surname= '$surname'";

$result = mysql_query($sql);
$count = mysql_num_rows($result);
$row = mysql_fetch_array($result);

echo "$sql" . '<br/><br/>'; 

echo "$result" . '<br/><br/>';

if ($count==0)
{
    if (!mysql_query($query)) 
    {
        die('Error: ' . mysql_error());
    }

    echo "Successful Entry!";
}
else 
{
    echo "Duplicate Entry found!";
}

私はphpとMySQLを初めて使用するので、高く評価されている回答をあまり活用できません。保存するかどうかを選択できるコードを追加する機会はありますか?

私が今いる場所では、重複するエントリが検出された場合、入力はデータベースに保存されません。それ以外の場合は、すぐに保存されます。とにかく重複を保存する方法で私が書いたコードを実際に変更できない場合は、保存後に重複を表示する何らかの画面を使用して、編集、消去などを行うこともできます。

于 2012-05-25T10:57:38.453 に答える
0

次のオプションがあります。

  • 「(名前、姓)」に従来のインデックスを設定する
  • 各挿入の前に、「(名前、姓)」の組み合わせが既に存在するかどうかを確認します
  • 存在しない場合は、挿入を正常に実行します [ここで、sb がこの 1ms の時間内に同じ挿入を行った可能性があるというリスクを考慮するのはあなた次第です]
  • EXISTS AND 強制モードの場合、とにかく行を追加します
  • 存在し、モードを強制しない場合は、仕様に従ってクライアントに進みます
  • クライアントがとにかく保存したい場合は、強制モードで操作を繰り返します。

これが本当に価値があると思う場合の代替手段は、とにかく行を挿入し、前の行があったかどうかを AFTERWARDS チェックすることです。クライアントが記録を残したい場合はそのままにし、そうでない場合は削除します。

rgds

于 2012-05-24T14:15:12.870 に答える