При добавление пользователей в базу надо автоматический создать шестизначный уникальный пин код (только цифры)
Автоинкремент не поможет тк последовательность не должна возрастать или убывать
стандартные рандомайзеры повторяются если я не ошибаюсь через 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)
результат = заносим_в_базу_код(пин);
если (результат положителен)
завершаем цикл
}