Сегодня 10 июля, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
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. Сам по себе релиз вполне обычный, но при этом произошли две интересные вещи:

  1. Репозиторий переехал с BitBucket (Mercurial) на GitHub (Git). Похоже, скоро вообще все популярные фреймворки будут развиваться именно там.
  2. Наконец, CodeIgniter в полной мере стал фреймворком сообщества: Reactor (ветка CI, развиваемая группой разработчиков из сообщества) стала основной.

Официальный пост про миграцию на GitHub



PhpStorm Database Navigator

2011-08-19 22:33:01 (читать в оригинале)

При работе с базой данных удобно рассматривать её структуру визуально. В идеале прямо из IDE. Хорошо-бы ещё и выполнять SQL и рассматривать результаты выполнения запроса табличкой в той же IDE. Данные задачи замечательно решаются в PhpStorm установкой плагина Database Navigator. Для тех, кто никогда не работал с Java и JDBC настройка не совсем тривиальна. Покажу как настроить для MySQL:

  1. Идём в IDE Settings → Plugins → Available.
  2. Ищем Database Navigator, делаем Download and Install.
  3. Сливаем с этой страницы архив коннектора JDBC. Находим там .jar и извлекаем в удобное место.
  4. Перегружаем IDE.
  5. Project Settings → Database Navigator → Connections.
  6. Добавляем соединение, в Driver Library прописываем путь к .jar.
  7. В 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, наше новое событие с чем-то пересекается…



Страницы: ... 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Религия»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.