Archive for the ‘MySQL’ Category

Jelastic.Cloud от Infobox: переход из беты в коммерцию

Пятница, октября 18, 2013

Jelastic.Cloud от Infobox: переход из беты в коммерцию

Infobox завершил бета-тестирование Jelastic.Cloud — облачной платформы нового поколения для размещения сайтов, Java и PHP приложений.

В течение месяца более 1000 человек тестировали новую услугу, оценивая ее преимущества и помогая нам сделать Jelastic.Cloud еще удобнее. И теперь вы наконец-то можете воспользоваться полной коммерческой версией платформы — все ограничения сняты!

Во время бета-тестирования было сделано немало полезных улучшений платформы: в 5 раз уменьшена цена на дисковое пространство (теперь использование 1 ГБ дискового пространства обойдется всего в 0,7 копеек в час, что приблизительно равно 5 рублям в месяц), добавлена возможность использования VDS, поддержка Ruby-окружений и CMS 1С-Битрикс: Корпоративный портал, исправлены ошибки.

Jelastic.Cloud — это облачная платформа, предназначенная для развертывания приложений без необходимости делать сложные настройки серверного окружения (что особенно актуально при работе с капризными к настройкам Java-приложениями) с возможностями автомасштабирования. Это позволяет оптимизировать расходы в момент небольших нагрузок и спокойно переживать наплыв посетителей, например, в периоды акций или рекламных кампаний на вашем сайте.

На Jelastic.Cloud вы легко перенесете ваш сайт за четыре клика или за несколько минут развернете одну из представленных CMS для установки в 1 клик в Облаке.

Помимо CMS, включенных в платформу Jelastic по умолчанию, мы запаковали еще 12 самых популярных CMS, в том числе и российских. При этом мы оптимизировали веб-окружение для каждой из них, добившись максимально возможных результатов. Мы кое-что изменили и в имеющихся в Jelastic пакетах для установки WordPress, Joomla и Drupal, т.к. результат их работы нас устраивал не до конца.
Кроме них мы подготовили пакеты для установки российских 1С-Битрикс в 3-х редакциях, UMI.CMS, Amiro CMS, NetCat, а также MODx, PrestaShop, osCommerce и многие другие. Кстати, сегодня мы предлагаем самый большой в мире каталог CMS для установки в 1 клик на Jelastic. С полным каталогом можно ознакомиться здесь.

Оставайтесь с нами и вас ждет много интересного. Например, уже на этой неделе мы добавим в каталог еще несколько CMS.

DATE_FORMAT дни недели и название месяцев по русски

Суббота, апреля 6, 2013

В MySQL есть очень удобная функция DATE_FORMAT

Однако при первом использовании оказалось что символьные обозначения дней недели и месяцев выводятся на английском языке. А как удобно было бы получить эти данные на русском языке

Этого оказывается можно легко достичь, достаточно выполнить запрос

SET lc_time_names = 'ru_RU';

раньше запроса в котором используется функция DATE_FORMAT.

Триггеры в MySQL

Четверг, октября 6, 2011

Простенький пример демонстрирующий работу триггеров.

Первая таблица – тестовая, триггеры будем вешать на нее.

CREATE TABLE `test` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`content` TEXT NOT NULL
) ENGINE = MYISAM

Вторая таблица – логи, в ней будет накапливаться информация о действиях производимых в первой таблице.

CREATE TABLE `log` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`msg` VARCHAR( 255 ) NOT NULL,
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`row_id` INT( 11 ) NOT NULL
) ENGINE = MYISAM

Ну и собственно сами триггеры:

1. Триггер, реагирующий на вставку строк в первую таблицу (INSERT).

CREATE TRIGGER `insert_test` AFTER INSERT ON `test`
FOR EACH ROW BEGIN
INSERT INTO log Set msg = 'insert', row_id = NEW.id;
END;

2.  Триггер, реагирующий на изменение сток в первой таблице (UPDATE)

CREATE TRIGGER `update_test` BEFORE UPDATE ON `test`
FOR EACH ROW BEGIN
INSERT INTO log Set msg = 'update', row_id = OLD.id;
END;

3. Триггер, реагирующий на удаление строк из первой таблицы (DELETE)

CREATE TRIGGER `delete_test` BEFORE DELETE ON `test`
FOR EACH ROW BEGIN
INSERT INTO log Set msg = 'delete', row_id = OLD.id;
END;

Эти три вида триггеров позволяют сделать вести полноценный лог изменений в тестовой таблице. Причем предпринимать каких-либо дополнительных действий не нужно, все будет происходить автоматически.

Как хранить дату в MySQL

Среда, октября 5, 2011

1. Хранить дату в mysql в TIMESTAMP.
2. Всегда в PHP задавать временную зону пользователя функцией date_default_timezone_set().
3. Доставать значение TIMESTAMP из БД и переводить его в нужный формат функцией date($format, $timestamp) в PHP.

Округление в php, mySQL и JavaScript

Пятница, сентября 9, 2011

Не редко приходится округлять числа при программировании для веб. Встроенные функции веб-языков позволяют выполнять эту оперцию.

Округление в PHP

Функция round().

Синтаксис:

float round ( float value [, int precision] ) .

Первый параметр всегда обязателен, в нем передается дробное число, второй параметр задает число знаков после запятой, если он не указа то функция возвратит целое число.

Правила округления для функции round соответствую правилам округления в обычной математике, т.е. 3.7 будет округлено до 4, тогда как 4.4 будет округлено до 3.

Функция ceil()

Синтаксис:

float ceil ( float value )

Эта функция округляет число до ближайшего челого числа в большую сторону, т.е. 3.1 и 3.9 будет округлено до 4.

Функция ceil() всегда имеет  только один параметр.

Функция floor();

Синтаксис:

float floor(float value)

В  отличии от функции ceil() эта функция округляет число в меньшую сторону, таким образом, для чисел 3.1 и 3.9 функция floor() вернет 3.

Округление в MySQL

ROUND(число [, точность])  аналог функции round() в php.

TRUNCATE(число) аналог функции ceil() в php.

FLOOR(число)  аналог функции floor() в php.

Округление в JavaScript

Метод round() объекта Math.

Синтаксис:

Math.round(x)

Округляет число подобно функции round() в php без второго параметра.

Метод floor() объекта Math.

Синтаксис:

Math.floor(x)

Округляет число до ближайшего  большего или равного целого числа.

Метод ceil() объекта Math.

Синтаксис:

Math.ceil(x)

Округляет число до ближайшего  меньшего или равного целого числа.

Метод  toFixed(число знаков после запятой)

Для округления в Javascript вещественного числа до N знаков после запятой можно воспользоваться методом toFixed объекта Number:
(3.2489).toFixed(2); //результат 3.24
Math.PI.toFixed(4); //результат 3.1416 – число π с 4 знаками после запятой

Метод toFixed возвращает число в виде строки с заданным числом цифр после запятой.

Метод toPrecision()

Синтаксис:

numObj.toPrecision ([precision])

precision  – Необязательный. Число значащих цифр. Должно быть в диапазоне 1 – 21, включительно.

Округляет число до общего количества цифр вне зависимости: после запятой или нет.

Number("90").toPrecision(4)  // = 90.00
Number("90.1234").toPrecision(4)  // = 90.12

Если указанное значение precision не достижимо обрезанием десятичной части – переводит число в экспоненциальную форму.

Поиск дублей SQL/MySQL

Среда, июня 22, 2011

Иногда возникает необходимость найти строки, в которых дублируются значения некоторых полей.  Например найти строки в таблице table в которых значения поля field не уникальны, тоесть дублируются.

SELECT * FROM `table` GROUP BY field HAVING COUNT( * ) >1

Преобразование IP-адресов в PHP и MySQL

Понедельник, апреля 4, 2011

Формат IP-адреса достаточно удобен для человека: четыре цифры, разделенные точками. Однако такой формат очень не удобен при программировании, поэтому IP-адреса преобразуют в обычное число для удобства.

Рассмотрим какие инструменты для этого применяются.

PHP
Функция php ip2long – переводит ip-адрес в число, а php-функция long2ip выполняет обратное преобразование из числа в ip-адрес.
Ip-адрес, преобразованный первой функцией, можно записать в базу данных в числовое поле, что гораздо удобнее и эффективнее по сравнению с символьным типом.

ip2long('2.60.255.255'); //возвратит 37552127.
long2ip( '37552127' ); //возвратит 2.60.255.255.

MySQL
В языке MySQL есть аналог php-функции ip2long, позвозяющий переобразовать ip-адрес в число, это функция MySQL INET_ATON, а обратное преобразование числа в ip-адрес осуществляется с помощью mysql-функции INET_NTOA.

SELECT INET_ATON( '2.60.255.255' ) - возвратит 37552127.
SELECT INET_NTOA( '37552127' )  -возвратит 2.60.255.255.

Функция STR_TO_DATE MySQL

Вторник, февраля 8, 2011

Преобразовывает дату в MySQL формат

SELECT STR_TO_DATE(  “07.02.2011 10:22:43″,  “%d.%m.%Y %H:%i:%s” ) ;

параметры те же что в DATE_FORMAT

Функция DATE_FORMAT MySQL

Вторник, февраля 8, 2011

SELECT DATE_FORMAT(“2011-02-08″,’%d.%m.%Y’);

%M Название месяца (январь…декабрь)

%W Название дня недели (воскресенье…суббота)

%D День месяца с английским суффиксом (0st, 1st, 2nd, 3rd и т.д.)

%Y Год, число, 4 разряда

%y Год, число, 2 разряда

%X Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%V’

%x Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%v’

%a Сокращенное наименование дня недели (Вс…Сб)

%d День месяца, число (00..31)

%e День месяца, число (0..31)

%m Месяц, число (00..12)

%c Месяц, число (0..12)

%b Сокращенное наименование месяца (Янв…Дек)

%j День года (001..366)

%H Час (00..23)

%k Час (0..23)

%h Час (01..12)

%I Час (01..12)

%l Час (1..12)

%i Минуты, число (00..59)

%r Время, 12-часовой формат (hh:mm:ss [AP]M)

%T Время, 24-часовой формат (hh:mm:ss)

%S Секунды (00..59)

%sСекунды (00..59)

%p AM или PM

%w День недели (0=воскресенье..6=суббота)

%U Неделя (00..53), где воскресенье считается первым днем недели

%u Неделя (00..53), где понедельник считается первым днем недели

%V Неделя (01..53), где воскресенье считается первым днем недели. Используется с `%X’

%v Неделя (01..53), где понедельник считается первым днем недели. Используется с `%x’

%% Литерал `%’.