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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Генерирование номера заказа

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Budulianin
Отправлено: 15 Августа, 2011 - 11:08:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Всем привет. Нужно присваивать каждому заказу индивидуальный номер. Откуда лучше брать этот номер? Случайное число явно не подойдёт, несерьёзно. Повторяться номера не должны. Брать из БД добавлять +1 и сохранять или есть лучшие варианты?

(Отредактировано автором: 15 Августа, 2011 - 11:08:29)

 
 Top
SAD
Отправлено: 15 Августа, 2011 - 11:11:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Budulianin пишет:
Брать из БД добавлять +1

сойдет думаю
 
 Top
Мелкий Супермодератор
Отправлено: 15 Августа, 2011 - 11:14:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Чем auto_increment не подходит?


-----
PostgreSQL DBA
 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:14:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




SAD пишет:
Budulianin пишет:
Брать из БД добавлять +1

сойдет думаю


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


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

Или я что-то не понял?
 
 Top
Мелкий Супермодератор
Отправлено: 15 Августа, 2011 - 11:16:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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

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


-----
PostgreSQL DBA
 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:18:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




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

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


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

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


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



Мне только сформироватьт не повторяющейся номер заказа нужно поудобнее для себя
 
 Top
illy
Отправлено: 15 Августа, 2011 - 11:20:03
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




используй $id=time().'-'.sprintf('%.3f',microtime())

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

$t=preg_replace('/(.*)-(.*)/','\1',$id);
echo date('j.m.Y H:i-s',$t);

(Отредактировано автором: 15 Августа, 2011 - 11:28:07)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
SAD
Отправлено: 15 Августа, 2011 - 11:23:22
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())

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

(Отредактировано автором: 15 Августа, 2011 - 11:24:53)

 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:23:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())



ну такой вариант по крайней мере никогда не выдаст повторяющийся номер
 
 Top
illy
Отправлено: 15 Августа, 2011 - 11:27:06
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




SAD пишет:
могут 2 заказа одновременно сделать

тогда в микротайме увеличить количество выводимых чисел Улыбка


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:28:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




SAD пишет:
illy пишет:
используй $id=time();
или $id=time().sprintf('%.3f',microtime())

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


Хм, интересно, может ли такое получиться?
 
 Top
SAD
Отправлено: 15 Августа, 2011 - 11:28:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




вариантов куча на самом деле, просто нужно учесть, чтобы исключить возможность повторения заказа.
(Добавление)
Budulianin пишет:
м, интересно, может ли такое получиться?

поверьте - может
 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:30:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Тогда поставлю просто microtime()

Так уж точно не пройдёт
 
 Top
illy
Отправлено: 15 Августа, 2011 - 11:31:06
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Budulianin пишет:
Хм, интересно, может ли такое получиться?

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

$id=time().'-'.sprintf('%.3f',microtime()).mt_rand(1000,9999);


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Budulianin
Отправлено: 15 Августа, 2011 - 11:32:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 132
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Всем спасибо. Поставлю прост microtime() , думаю достаточно будет
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB