Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Генерирование номера заказа
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Генерирование номера заказа

Страниц (1): [1]
 

1. Budulianin - 15 Августа, 2011 - 11:08:00 - перейти к сообщению
Всем привет. Нужно присваивать каждому заказу индивидуальный номер. Откуда лучше брать этот номер? Случайное число явно не подойдёт, несерьёзно. Повторяться номера не должны. Брать из БД добавлять +1 и сохранять или есть лучшие варианты?
2. SAD - 15 Августа, 2011 - 11:11:43 - перейти к сообщению
Budulianin пишет:
Брать из БД добавлять +1

сойдет думаю
3. Мелкий - 15 Августа, 2011 - 11:14:02 - перейти к сообщению
Чем auto_increment не подходит?
4. Budulianin - 15 Августа, 2011 - 11:14:12 - перейти к сообщению
SAD пишет:
Budulianin пишет:
Брать из БД добавлять +1

сойдет думаю


просто думал, что опытные люди что-то не очевидное и умное смогут подсказать. Вдруг есть такие решения
(Добавление)
Мелкий пишет:
Чем auto_increment не подходит?


авто инкремент делает +1 когда что-то записываешь в таблицу, а мне ничего записывать не надо.

Или я что-то не понял?
5. Мелкий - 15 Августа, 2011 - 11:16:59 - перейти к сообщению
Budulianin пишет:
авто инкремент делает +1 когда что-то записываешь в таблицу, а мне ничего записывать не надо.

Однако А информация о заказе никакая не нужна?
6. Budulianin - 15 Августа, 2011 - 11:18:21 - перейти к сообщению
Мелкий пишет:
Budulianin пишет:
авто инкремент делает +1 когда что-то записываешь в таблицу, а мне ничего записывать не надо.

Однако А информация о заказе никакая не нужна?


Нет не нужна =) она сразу на другой хост обработчику отдаётся
(Добавление)
Budulianin пишет:
Мелкий пишет:
Budulianin пишет:
авто инкремент делает +1 когда что-то записываешь в таблицу, а мне ничего записывать не надо.

Однако А информация о заказе никакая не нужна?


Нет не нужна =) она сразу на другой хост обработчику отдаётся



Мне только сформироватьт не повторяющейся номер заказа нужно поудобнее для себя
7. illy - 15 Августа, 2011 - 11:20:03 - перейти к сообщению
используй $id=time().'-'.sprintf('%.3f',microtime())

+ будете знать когда заказ поступил Ха-ха

$t=preg_replace('/(.*)-(.*)/','\1',$id);
echo date('j.m.Y H:i-s',$t);
8. SAD - 15 Августа, 2011 - 11:23:22 - перейти к сообщению
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())

тож хотел предложить, как вариант, ног нужно еще что то добавить, т к. могут 2 заказа одновременно сделать
9. Budulianin - 15 Августа, 2011 - 11:23:29 - перейти к сообщению
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())



ну такой вариант по крайней мере никогда не выдаст повторяющийся номер
10. illy - 15 Августа, 2011 - 11:27:06 - перейти к сообщению
SAD пишет:
могут 2 заказа одновременно сделать

тогда в микротайме увеличить количество выводимых чисел Улыбка
11. Budulianin - 15 Августа, 2011 - 11:28:06 - перейти к сообщению
SAD пишет:
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())

тож хотел предложить, как вариант, ног нужно еще что то добавить, т к. могут 2 заказа одновременно сделать


Хм, интересно, может ли такое получиться?
12. SAD - 15 Августа, 2011 - 11:28:13 - перейти к сообщению
вариантов куча на самом деле, просто нужно учесть, чтобы исключить возможность повторения заказа.
(Добавление)
Budulianin пишет:
м, интересно, может ли такое получиться?

поверьте - может
13. Budulianin - 15 Августа, 2011 - 11:30:58 - перейти к сообщению
Тогда поставлю просто microtime()

Так уж точно не пройдёт
14. illy - 15 Августа, 2011 - 11:31:06 - перейти к сообщению
Budulianin пишет:
Хм, интересно, может ли такое получиться?

совпадение очень маловероятно, так как стоит микротайм.
ну можно ещё рендом чисел добавить для уверенности Улыбка

$id=time().'-'.sprintf('%.3f',microtime()).mt_rand(1000,9999);
15. Budulianin - 15 Августа, 2011 - 11:32:21 - перейти к сообщению
Всем спасибо. Поставлю прост microtime() , думаю достаточно будет

 

Powered by ExBB FM 1.0 RC1