私は自分のコードに少しこだわっています。
私は練習していて、次のことを達成したいと思っています。
ユーザーがサインアップする前に、名前を1つ増やすよりも、存在する場合はユーザーのユーザー名が存在することを確認したいと思います。
したがって、私のロジックは次のように機能します。ユーザーは自分の姓名を入力し、それに基づいてユーザー名を生成します。
関数
function unique_name($first_name, $last_name) {
$username = strtolower($first_name.'.'.$last_name)
$check = mysqL_query(" SELECT username WHERE username = '".$username."' ");
if(count($check == 1)) {
$i = 2;
foreach($check as $user) {
return $user['username'].$i;
$i++;
}
} else {
return $username;
}
}
$username = unique_name($_POST['first_name'], $_POST['last_name']);
// saveing the increased username
したがって、実際には、スクリプトは、生成された一意のユーザー名が存在するかどうかを確認し、exsits が増加した場合でもそれを増加させる必要があります。
例
Tom Anderson がサインアップすると、ユーザー名は tom.anderson になり、tom anderson として保存されます
2 番目に Tom Anderson がサインアップします。ユーザー名は tom.anderson になります。これは既に存在するため、新しいものを tom.anderson2 として保存します。
3 番目のユーザーもトム アンダーソンでサインアップし、ユーザー名 tom.anderson* が 2 回存在し、tom.anderson3 に増加します。
したがって、ユーザーが存在するかどうかを確認して保存するのに問題はありません。私の問題は、存在する場合にすべてのユーザー名を増やす方法ですか?
私は誰にもこれを書くように頼んでいるわけではありません。ヒントを探しているだけです。
ありがとうございました
編集
返信ありがとうございますが、これは機能しません
if(count($check) == 1) {
$i = 2;
foreach($check as $user) {
return $user['username'].count($check);
$i++;
}
} else {
return $username;
}
これは番号なしでユーザー名のみをチェックするため、ユーザー名 tom.anderson が存在する場合は tom.anderson1 に増加しますが、tom.anderson1 も存在する場合は tom.anderson2 に増加しません