Php 如何根据用户的全名生成唯一用户名?

Php 如何根据用户的全名生成唯一用户名?,php,mysql,mysqli,Php,Mysql,Mysqli,我想在注册过程中根据每个用户的姓名为其生成唯一的用户名,用户可以稍后更改。如果用户在注册表中输入“smith doe”作为自己的姓名,自动生成的用户名应为“smith”,但如果“smith”已经是某人的用户名,则应在“smith”的末尾添加任何可用的号码:如-“smith1”或“smith2”或“smith3”等 以下是我尝试过的: $usnm = $_POST['name']; $first_nut = explode(' ', $usnm); $usnm3 = $first_nut

我想在注册过程中根据每个用户的姓名为其生成唯一的用户名,用户可以稍后更改。如果用户在注册表中输入“smith doe”作为自己的姓名,自动生成的用户名应为“smith”,但如果“smith”已经是某人的用户名,则应在“smith”的末尾添加任何可用的号码:如-“smith1”或“smith2”或“smith3”等

以下是我尝试过的:

$usnm  = $_POST['name'];    
$first_nut = explode(' ', $usnm);
$usnm3 = $first_nut[0];

$usnm5 = $usnm3;

function generateUsername($usnm3,$iteration = 0) 
{
$generated = $iteration > 0 ? ($usnm3 . $iteration) : $usnm3; //Increment username
$query_usnm = mysqli_query($con, "SELECT * FROM user WHERE (u_name = '$generated' or u_name = '$usnm3') ");

if(mysqli_num_rows($query_usnm) > 0) 
{
return generateUsername($usnm3,$iteration + 1);
}

return $generated;
 }

$usnm4 = generateUsername($usnm5);


$sql = mysqli_query($con, "insert into user (name, u_name) values ('$name', '$usnm4');");

你的脚本有什么问题?@fusion3k它多次插入相同的用户名,即使用户名存在。。。它插入'smith',即使'smith'已经是某人的用户名。检查$query\u usnm的结果,因为问题就在它里面。剩下的代码对我有用。旁注:在fusion3k中不需要使用'SELECT*FROM user,其中u_name='$generated'`或u_name='$usnm3'`可以建议我怎么做吗?我真的需要帮助兄弟…这个问题完全是重复的。这位OP显然有两个账户,现在变得咄咄逼人,因为他不喜欢另一篇帖子上的评论。