[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Генерация ПИН КОДА
Коля
Здравствуйте может кто реализовывал генерацию пин когда

При добавление пользователей в базу надо автоматический создать шестизначный уникальный пин код (только цифры)

Автоинкремент не поможет тк последовательность не должна возрастать или убывать

стандартные рандомайзеры повторяются если я не ошибаюсь через 20 или 30 тысяч





Спустя 6 минут, 4 секунды (31.01.2012 - 17:59) redreem написал(а):
рандомайз -> проверка на существование -> если есть, снова рандомайз

Спустя 2 минуты, 37 секунд (31.01.2012 - 18:01) Winston написал(а):
echo str_shuffle(mt_rand(100000, 999999));

Спустя 16 секунд (31.01.2012 - 18:02) T1grOK написал(а):
Сформировать все пинкоды(собственно тот же автоинкремент "текстовый"), "перемешать" сохранить и назначать по порядку.

Спустя 3 минуты, 44 секунды (31.01.2012 - 18:05) T1grOK написал(а):
Цитата (redreem @ 31.01.2012 - 14:59)
рандомайз -> проверка на существование -> если есть, снова рандомайз

80%-90%-99% - пин кодов занято. Придется "перегенерировать" пин код не одну сотню, тысячу и сотни тысяч раз, а может и больше.

Спустя 17 минут, 58 секунд (31.01.2012 - 18:23) Коля написал(а):
"Сформировать все пинкоды(собственно тот же автоинкремент "текстовый"), "перемешать" сохранить и назначать по порядку."

Взять создать таблицу с заготовленными пин кодами (тогда придется извлекать, затем удалять используя транзакции )

Спустя 2 часа, 21 минута, 14 секунд (31.01.2012 - 20:45) alex12060 написал(а):
Просто сделать в цикле:

Явно поле в БД с пин кодом должно быть проиндексировано и уникальным

Пока ( 1 ) {
пин = генератор_пин_кода(6)

результат = заносим_в_базу_код(пин);

если (результат положителен)
завершаем цикл
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.