Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выполнение запроса в бд 001+дата
 
 автор: clubxaliav   (14.05.2012 в 19:21)   письмо автору
 
 

Прощу помощи реализовать отправку числа 001+дата.

Интернет магазин - есть заказы - номер следующего заказа должен быть 002+дата (ежедневно начинаться должны с 001+дата)

т.е номер заказа должен быть таким 00114052012

Заранее благодарю!

  Ответить  
 
 автор: clubxaliav   (15.05.2012 в 08:53)   письмо автору
 
   для: clubxaliav   (14.05.2012 в 19:21)
 

Подскажите хотя бы в какой "Тип документации" хранить в БД число 000, чтоб к ниму прибавлять +1, остальное не сложно.

Просто INT сохраняет только один 0.
В принцепе VARCHAR хранит запись какую мне надо, но после вывода 000 + 1 = 1.

Как вариант сделать вывод количества заказов за сегодня и если он < 10, то к количеству заказов +1 и впереди подставить 00, если 10 < заказов> 100, то подставить один 0

В общем, что то в этом роде!

  Ответить  
 
 автор: confirm   (15.05.2012 в 10:08)   письмо автору
 
   для: clubxaliav   (15.05.2012 в 08:53)
 

Ноль, это пустышка ничего не значащая, и польза от нее только в сортировке имен файлов, к примеру, на диске. Зачем они нужны в базе? Уж если так неймется, то добавляйте при выводе, как и пишите.

  Ответить  
 
 автор: cheops   (15.05.2012 в 12:02)   письмо автору
 
   для: clubxaliav   (14.05.2012 в 19:21)
 

Можно попробовать использовать функцию CONCAT().

  Ответить  
 
 автор: Sfinks   (15.05.2012 в 12:49)   письмо автору
 
   для: clubxaliav   (14.05.2012 в 19:21)
 

Вот я обычно этим не занимаюсь, но тут попробую вас переубедить.

Зачем такие сложности? В чем смысл? Как вы потом будете работать с этими данными?

001+дата - такой формат данных для чего? Для получения уникального значения? Зачем тогда изобретать велосипед? Сделайте 3 поля вместо этого одного, но с типами данных, с которыми потом возможно будет удобно работать!

1поле - id - INT (primary index, autoincrement)
2поле - dayly_num - INT
3поле - date - DATE

Вы и любую выборку сможете сделать легко и непринужденно, и наглядно и, если уж вам очень понадобится получить результат вида "001+дата" можно составить такой запрос:
SELECT CONCAT( LPAD( `dayly_num` , 3, '0' ) , DATE_FORMAT( `date` , '%d%m%Y' ) ) AS `articul` FROM `table`

  Ответить  
 
 автор: clubxaliav   (15.05.2012 в 13:15)   письмо автору
 
   для: Sfinks   (15.05.2012 в 12:49)
 

Спасибо огромное будем пробовать!

001 - нужно не для меня, отправка заказа осуществляется через почтовую организацию, синхронизировать этот номер с их бд!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования