ユーザー名がデータベースに挿入されると、次のようになります。
- ジョンスミス
John_Smith が既に存在するかどうかを確認する必要があります。その場合は、1 ずつ増やして John_Smith_1 にします。
したがって、次のユーザー名が既に存在する場合:
- ジョンスミス
- ジョン_スミス_1
- ジョン_スミス_2
- ジョン_スミス_3
- ....John_Smith_10 まで
次の John_Smith を挿入して、John_Smith_11 にインクリメントする必要があります。
これまでのところ、私はこれを検索して思いついた:
$preferredname= "John_Smith"
//check for duplicate user names
$duplicate= check_for_duplicate_username($preferredname);
//if duplicate, increment the preferredname
if ($duplicate)
{
$parts = explode("_",$preferredname);
if (isset($parts[1]))
$preferredname = $parts[0]."_".$parts[1]."_".($parts[2]+1);
else $preferredname = $parts[0]."_".$parts[1]."_1";
}
これは、最初に一致したユーザー名に対してのみ機能すると思います。私の問題は、最大番号の名前のバージョンをデータベースでチェックすることです.これは私のSQLです:
function check_for_duplicate_username($name)
{
// check if username already exists
$sql = "SELECT * FROM users WHERE user_username=$name";
//then return duplicates