|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
|
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
|
CodeIgniter 2.0.3, GitHub и Reactor
2011-08-20 23:03:47 (читать в оригинале)Зарелизился CodeIgniter 2.0.3. Сам по себе релиз вполне обычный, но при этом произошли две интересные вещи:
- Репозиторий переехал с BitBucket (Mercurial) на GitHub (Git). Похоже, скоро вообще все популярные фреймворки будут развиваться именно там.
- Наконец, CodeIgniter в полной мере стал фреймворком сообщества: Reactor (ветка CI, развиваемая группой разработчиков из сообщества) стала основной.
Официальный пост про миграцию на GitHub
PhpStorm Database Navigator
2011-08-19 22:33:01 (читать в оригинале)При работе с базой данных удобно рассматривать её структуру визуально. В идеале прямо из IDE. Хорошо-бы ещё и выполнять SQL и рассматривать результаты выполнения запроса табличкой в той же IDE. Данные задачи замечательно решаются в PhpStorm установкой плагина Database Navigator. Для тех, кто никогда не работал с Java и JDBC настройка не совсем тривиальна. Покажу как настроить для MySQL:
- Идём в
IDE Settings → Plugins → Available. - Ищем
Database Navigator, делаемDownload and Install. - Сливаем с этой страницы архив коннектора JDBC. Находим там
.jarи извлекаем в удобное место. - Перегружаем IDE.
Project Settings → Database Navigator → Connections.- Добавляем соединение, в
Driver Libraryпрописываем путь к.jar. - В
URLпрописываемjdbc:mysql://127.0.0.1:3306. Сохраняемся.
Всё, теперь можно пользоваться:
- Из главного меню
DB Navigator → Open SQL Console…доступен редактор SQL с возможностью запуска этого самого SQL. - Если открыть вкладку
DB Browserслева, получим неплохой способ визуально рассматривать схему.
Выбрать посты, содержащие все теги из списка
2011-08-12 02:44:23 (читать в оригинале)В этом блоге примерно с середины 2007-го, когда я переписал его с файлового велосипедохранилища на нормальный SQL, появилась возможность выбрать посты, содержащие все заданные теги. В 2008-м возможность окончательно оформилась в теговую навигацию.
Изначальный способ выборки, который используется и сейчас:
SELECT * FROM post p JOIN post_tag pt1 ON pt1.post_id = p.id JOIN tag t1 ON t1.id = pt1.tag_id AND t1.name = 'php' JOIN post_tag pt2 ON pt2.post_id = p.id JOIN tag t2 ON t2.id = pt2.tag_id AND t2.name = 'yii' -- для каждого дополнительного тега добавляем ещё JOIN-ы
Недавно Максим подсказал способ поизвращённее:
-- Сначала выбираем посты с тегом yii и посты с тегом php -- через IN. Если у поста и тот и тот тег, он будет выбран -- несколько раз. SELECT * FROM post p JOIN post_tag pt ON pt.post_id = p.id JOIN tag t ON pt.tag_id = t.id WHERE t.name IN ('php', 'yii') -- Считаем количество раз, которые выбрался пост. Если оно -- совпадает с количеством тегов в нашем списке, то это -- означает, что у поста есть и тот и тот тег. GROUP BY p.id HAVING COUNT(pt.tag_id) = 2
Есть ли ещё интересные способы решения этой задачи?
Перехват фатальных ошибок в Yii
2011-08-12 02:13:23 (читать в оригинале)Владимир Колесников описал у себя в блоге способ отлова фатальных ошибок PHP в Yii. Подумываю прикрутить к Yii2… или лучше сразу к Yii 1.1?
Рассматриваем
SQL, пересекается ли событие с теми, что уже имеются в таблице
2011-08-09 21:42:11 (читать в оригинале)Довольно частая задача при работе с различными событиями и датами.
Имеется таблица вида:
CREATE TABLE `event` ( `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `start_time` datetime DEFAULT NULL, `end_time` datetime DEFAULT NULL, );
Тут start_time и end_time не обязательно datetime. Например, они могут быть просто int-ами, хранящими обычный unix timestamp.
Перед вставкой очередной записи нужно убедиться, что событие не пересечётся с каким-либо уже имеющимся в базе. Решается это так:
SELECT 1 FROM event WHERE :new_start_time BETWEEN start_time AND end_time OR :new_end_time BETWEEN start_time AND end_time OR start_time BETWEEN :new_start_time AND :new_end_time OR end_time BETWEEN :new_start_time AND :new_end_time LIMIT 1
В запросе :new_start_time и :new_end_time соответственно начало и конец события, которое мы собираемся вставлять. Если запрос выше отдал 1, наше новое событие с чем-то пересекается…
|
| ||
|
+382 |
399 |
Follow_through |
|
+328 |
331 |
שימותו הקנאים |
|
+320 |
334 |
Tomas50 |
|
+317 |
357 |
krodico |
|
+307 |
359 |
Ланин Сергей |
|
| ||
|
-4 |
42 |
Similis_Deo |
|
-5 |
2 |
Dark Music in Your Heart | Dark Music in Your Heart |
|
-6 |
9 |
BrightBand |
|
-15 |
135 |
Музпросвет в мыслях |
|
-16 |
167 |
Trance Music - Транс музыка |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.
