Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тип для цвета 
:(
    Опции темы
GrafF812
Дата 10.5.2011, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



Привет. Мне нужно в mysql базе хранить шестнадцатиричное значения для цвета. Подскажите какой тип столбца лучше выбрать?

Это сообщение отредактировал(а) GrafF812 - 10.5.2011, 16:11
PM MAIL   Вверх
ayax2005
Дата 10.5.2011, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: нет
Всего: 11



конечно числовой. int вполне достаточно


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
GrafF812
Дата 10.5.2011, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



Ну делов том, что мне нужно это значние подставлять в таком виде
Код

color:#878787

В этом случае все равно лучше в INT или в VARCHAR сразу с '#'(решеткой) хранить?
PM MAIL   Вверх
NLspieler
Дата 10.5.2011, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



Цитата(GrafF812 @ 10.5.2011,  17:12)
Ну делов том, что мне нужно это значние подставлять в таком виде
Код

color:#878787

В этом случае все равно лучше в INT или в VARCHAR сразу с '#'(решеткой) хранить?

Номер цвета - это шестнадцатиричное число, которое можно преобразовать в обычное десятичное или обратно.

Для хранения чисел и работы с ними требуется гораздо меньше ресурсов. 
Поэтому лучше перед сохранениям в базу данных, преобразовывать шестнадцатеричное число в десятичное при помощи функции hexdec,
а при доставании из базы преобразовывать обратно в шестнадцатиричное, используя функцию dechex и подставлять решетку и все что нужно.

Забыл упомянуть, что если в базу сохранить черный цвет #000000, то в базу сохранится число 0. 
При обратном преобразовании получится шестнадцатеричное число 0, а не так как было.
Поэтому нужно проверять при помощи функции strlen длину получившейся строки, и если есть необходимость, добавлять слева недостающие нулю

Это сообщение отредактировал(а) NLspieler - 10.5.2011, 19:11
PM MAIL   Вверх
solenko
Дата 10.5.2011, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 7
Всего: 67



Цитата(NLspieler @  10.5.2011,  18:08 Найти цитируемый пост)
Забыл упомянуть, что если в базу сохранить черный цвет #000000, то в базу сохранится число 0. 
При обратном преобразовании получится шестнадцатеричное число 0, а не так как было.
Поэтому нужно проверять при помощи функции strlen длину получившейся строки, и если есть необходимость, добавлять слева недостающие нулю

Все гараздо проще
sprintf('#%06x', 0);


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.