3

ユーザー名がデータベースに挿入されると、次のようになります。

  • ジョンスミス

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   
4

3 に答える 3