当用户名插入我的数据库时,例如:
- 约翰·史密斯
我需要检查是否已经有 John_Smith 在场。如果是这样,将其加 1 成为 John_Smith_1
因此,如果以下用户名已经存在:
- 约翰·史密斯
- 约翰_史密斯_1
- John_Smith_2
- John_Smith_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