Что-то вроде:
$username = left($email, stripos($email, '@'));
должен сделать. Вы можете изучить регулярные выражения для задач такого типа.
Затем вы добавляете счетчик:
function countOccurrences($name)
{
$con = mysql_connect(___, ___, ___);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db(___, $con);
$result = mysql_query("
SELECT COUNT(*) AS countOccurrences
FROM users
WHERE username LIKE '" . mysql_real_escape_string($name, $con) . "%'
");
$row = mysql_fetch_array($result);
$number = $row['countOccurrences'];
mysql_close($con);
return $number;
}
и затем:
$countUsers = countOccurrences($username);
if ($countUsers>0)
{
$username = $username . $countUsers;
}
ВАЖНО: Подумайте об использовании всей электронной почты в качестве имени пользователя: вы не хотите, чтобы gordon@flash.net считался равным gordon@clash.com
ПРИМЕЧАНИЕ: пример кода учитывает gordon, gordon1, gordon2, но gordonbah, gordonq, gordonxxx тоже
ПРИМЕЧАНИЕ: это довольно грубо и не должно рассматриваться как лучшая практика PHP; это просто чтобы дать общее представление