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);
+ будете знать когда заказ поступил
$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())
или $id=time().sprintf('%.3f',microtime())
тож хотел предложить, как вариант, ног нужно еще что то добавить, т к. могут 2 заказа одновременно сделать
9. Budulianin - 15 Августа, 2011 - 11:23:29 - перейти к сообщению
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())
или $id=time().sprintf('%.3f',microtime())
ну такой вариант по крайней мере никогда не выдаст повторяющийся номер
10. illy - 15 Августа, 2011 - 11:27:06 - перейти к сообщению
SAD пишет:
могут 2 заказа одновременно сделать
тогда в микротайме увеличить количество выводимых чисел
11. Budulianin - 15 Августа, 2011 - 11:28:06 - перейти к сообщению
SAD пишет:
тож хотел предложить, как вариант, ног нужно еще что то добавить, т к. могут 2 заказа одновременно сделать
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())
или $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() , думаю достаточно будет