增量當一個用戶名被插入到我的數據庫,如:檢查用戶名是否存在,如果是這樣,一個
- John_Smith
我需要檢查,如果已經有一個John_Smith存在。如果是這樣,加1就成爲John_Smith_1
因此,如果以下用戶名已經存在:
- John_Smith
- John_Smith_1
- John_Smith_2
- John_Smith_3
- ....達John_Smith_10
我需要nex 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:
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 2013-05-09 17:47:55
我討厭它,當網站做到這一點。只要告訴用戶名稱已被採納,並讓他們選擇另一個。 – vascowhite 2013-05-09 17:52:01
快速思考 - 也許您應該將增加的值與用戶一起保存,以便您可以按該列進行排序。或者,您可以將ID附加到用戶名,如果它被採取。或者更好的是,返回一個「錯誤」,說明用戶名被採取並讓他們選擇另一個名字。 – 2013-05-09 17:53:41