(PHP) Форматирование чисел

Ведущая Бурильная Труба
Дата: 20.10.2006 15:57:09
Не могу догнать как преобразовать обычные целые числа (1, 2, 3455 и тп :)) в числа вот например такого формата 000001, 000002, 003455. Вроде бы по идее должно быть довольно просто, но что то я затупил уже ближе к концу дня :)
Ведущая Бурильная Труба
Дата: 20.10.2006 15:59:54
Да, и еще забыл сказать, что все это хранится в MySQL и необходимо иногда добавлять туда новые записи (соответственно нужно находить максимальное из этих чисел и увеличивать его на единицу). Уникальное поле со счетчиком не катит к сожалению, тк уже есть и выполняет свою функцию.
anvano
Дата: 20.10.2006 16:44:28
Почему нельзя хранить в MySQL 1, 2, 3455 и тп а уже при показе их пользователю преобразовывать как вам нужно?
anvano
Дата: 20.10.2006 16:46:44
Если уж очень хочется - то в MySQL у числовых полей есть такой атрибут как ZEROFILL
При записи чисел в такой столбец они будут автоматом дополняться слева до размерности столбца.

Соответственно и селект будет возвращать вам их с нулями (а дальше уже ваша проблема как эти нули не потерять)

--------------------------------------------------------------
Правильно заданный вопрос содержит в себе половину ответа
oraweb
Дата: 20.10.2006 16:52:33
Ведущая Бурильная Труба
Не могу догнать как преобразовать обычные целые числа (1, 2, 3455 и тп :)) в числа вот например такого формата 000001, 000002, 003455. Вроде бы по идее должно быть довольно просто, но что то я затупил уже ближе к концу дня :)


#На Перле
my $i = "000000";
my $y = 3455;
print "0"x(length $i - length $y) . $y;
003455
#length - возвращает длину строки
RussianSpy
Дата: 20.10.2006 16:56:35
функция strpad() тебя осчастливит...
oraweb
Дата: 20.10.2006 17:09:19
oraweb

#length - возвращает длину строки

Точнее так:
print "0"x((length $i) - (length $y)) . $y;
Гутманс
Дата: 20.10.2006 17:45:22
функция sprintf
DocAl
Дата: 21.10.2006 04:34:19
Гутманс
функция sprintf
Опоздал я малость.) Ну хоть пример приведу
sprintf('%06d', 1);
Ведущая Бурильная Труба
Дата: 30.10.2006 16:56:02
Всем спасибо, заюзал ZEROFILL

anvano
Почему нельзя хранить в MySQL 1, 2, 3455 и тп а уже при показе их пользователю преобразовывать как вам нужно?


Потому что, если будет много пользователей, то преобразовывать их придется чаще. А так сервер заморачивается, только когда добавляешь новые строки, что бывает определенно реже :)