Привет, я создаю систему, которая обрабатывает и ID, и UID, UID, который мы генерируем случайным образом, но я немного застрял, мне нужно всегда генерировать UID, которого в данный момент не существует в БД, поскольку поле являетсяуникальное поле, используемое во внешнем интерфейсе, чтобы не показывать действительный идентификатор.
Итак, подытожу, я пытаюсь сгенерировать уникальный идентификатор, который в настоящее время не существует в БД, часть, которую я не получил, работаяэто перекрестная проверка в БД, поэтому иногда она дает номер, который уже существует в БД, даже если это не нужно заранее благодарить.
Это мой код:
function uniqueID($table)
{
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$possible = '1234567890';
$code = '';
$characters = mt_rand(7,14);
$i = 0;
while($i < $characters)
{
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
$result = $db->query('
SELECT uniqueID
FROM '.$table.'
WHERE uniqueID = "'.$code.'"
LIMIT 1
');
$totalRows = $result->num_rows;
if(!$result)
{
return $db->error;
}
else
{
if($totalRows > 0)
{
return uniqueID($table);
}
else
{
return $code;
}
}
}