에 의한 증가는 사용자 이름과 같은, 내 데이터베이스에 삽입하면 . 최대 ....확인, 만약 그렇다면, 하나
- john_smith를
- John_Smith_1
- John_Smith_2
- John_Smith_3
- : 그렇다면, 다음과 같은 사용자 이름이 이미 존재한다면
John_Smith_1
되기 위해 1을 증가 John_Smith_10
나는 넥스가 필요하다. t 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 = 'SELECT * FROM users WHERE user_username LIKE ' . $name . '_%';
:
function check_for_duplicate_username($name)
{
// check if username already exists
$sql = "SELECT * FROM users WHERE user_username=$name";
//then return duplicates
여기에 XY 문제가 있습니다.ddls가 바뀌어야하고, 데이터베이스를 잘못 사용하고 있습니다. – gbtimmon
웹 사이트가 그렇게 할 때 나는 그것을 싫어합니다. 이름이 찍혔다는 것을 사용자에게 말하고 다른 사람을 선택하게하십시오. – vascowhite
빠른 생각 - 사용자와 함께 증가 된 값을 저장해야 해당 열로 정렬 할 수 있습니다. 또는 사용자 이름에 ID를 추가 할 수 있습니다. 또는 더 나은 아직 사용자 이름이 찍힌다는 것을 나타내는 "오류"를 반환하고 다른 이름을 선택하게하십시오. –