Блог о программировании

Наглядные примеры использования SELECT в MySQL

Категория: SQL
 15 января 2016 г. 21:01

Введение

Достаточно сложно встретить в интернете годную информацию по использованию оператора SELECT в SQL-запросах. Обычно дело ограничивается только описанием.

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

Теперь немного информации из Wikipedia:

Оператор SELECT имеет следующую структуру:
    SELECT 
       [DISTINCT | DISTINCTROW | ALL]
       select_expression,...
   [FROM table_references]
     [WHERE where_definition]
     [GROUP BY {unsigned_integer | col_name | formula}]
     [HAVING where_definition]
     [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]


Основные ключевые слова, относящиеся к запросу SELECT:
WHERE — используется для определения, какие строки должны быть выбраны или включены в GROUP BY.
GROUP BY — используется для объединения строк с общими значениями в элементы меньшего набора строк.
HAVING — используется для определения, какие строки после GROUP BY должны быть выбраны.
ORDER BY — используется для определения, какие столбцы используются для сортировки результирующего набора данных.

Этой теории нам достаточно для написания запросов.

Примеры

Для начала, понадобится тестовая таблица(назовем её `test_table`) со всеми данными, по которой мы будем делать выборку.

Читать далее  

Теги:  mysql  select 

Дебаг PHP на NetBeans+Denwer

 1 января 2016 г. 12:17

Сколько копьев было сломано при попытке заставить завестись нормальный дебаг PHP кода на платформе NetBeans с использованием Denwer’а. Сколько руководств было прочитано. И везде, как под копирку написано примерно одно и тоже:

Скачайте подходящий xDebug с официального сайта, если такого нет в Denwer’e;

Установите следующие параметры в файле php.ini:

zend_extension="\usr\local\php5\ext\php_xdebug-2.2.3-5.3-vc9.dll"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"

Перезапустите apache, выведите phpinfo() и убедитесь, что теперь доступен xDebug;

Дальше следует настройка NetBeans по такому алгоритму:

Заходим в Сервис → Параметры. Переходим в меню PHP, далее вкладка «Общего назначения» и указываем путь к интерпретатору PHP (у меня такой: Z:\usr\local\php5\php.exe). Дальше переходим на вкладку «Отладка (Debugging)» и указываем:

Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug

И типа готово...

Читать далее  

Теги:  php  netbeans  xdebug  отладка  php7 

PHP. Объекты, шаблоны и методики программирования

Категория: Книги
 17 декабря 2015 г. 21:02

Автор: Мэтт Зандстра

Отличная книга по php! Обязательна к прочтению, однозначно.

Книга написана доступным языком, материал подробно расписан так, что у читателя не должно возникнуть трудностей с его пониманием. На протяжении всей книги мелькают сноски о различиях в версиях PHP, что полезно для понимания, какой путь прошёл язык.

В начальных главах читателю дается понимание концепции ООП (в том числе раскрываются особенности реализации концепции в языке). На примерах разобраны такие важные понятия как инкапсуляция, наследование и полиморфизм, модификаторы доступа и статические методы и свойства. Книга просто пропитана лучшими практиками в разработке систем и правильными способами использования описанных возможностей. Описано множество типовых шаблонов проектирования и случаи их применения.

Читать далее  

Теги:  php  книга  php7 

Горячие клавиши Netbeans

 11 декабря 2015 г. 20:34

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

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

Читать далее  

Теги:  netbeans 

Рай программиста

Категория: Рабочие моменты
 25 ноября 2015 г. 20:52

Довелось некоторое время работать в международной компании, занимающейся разработкой софта для интернет-казино(кстати, лидер в своей области). Проработал я там около двух лет.
В компании несколько отделов: html5(мобильные разработчики), flash(desktop-разработчики), java-team(backend) и, конечно, тестеры. Я работал в команде html5-разработчиков. Самым организованным отделом был наш. Тимлид html5 разработчиков организовал для нас практически рай.

Так вот, код. Самое главное, с чем имеет дело программист в посведневной работе. В тиме был введен унифицированный стиль написания кода(т.н. codestyle). Это здорово, поскольку так куда проще разбираться в чужом коде. Имелся собственный фреймворк, написанный на чистом js и заточенный для написания игр под мобильные устройства. Фреймворк был кроссплатформенным(поддерживались WinPhone, Android > 4.1, iOS > 5.0). Те, кто писал кроссплатформенные вещи на js, знает, какой зоопарк устройств приходилось поддерживать. Ах да, мы писали на js в ООП стиле. Причем, без ограничений от канонического ООП. На js! И все это до TypeScript'a! Фантастика! Поскольку фреймворк был шикарно структурирован - он позволял писать невероятно гибкие системы. Там было все, что нужно: и собственные структуры данных(дерево, очередь, матрица, конечный автомат и т.д.), и собственная система инициализации событий(как в jQuery, только лучше), и грамотное разделение фреймворка на модули. И все это добро приправлено просто горой различных шаблонов проектирования. Было здорово копаться в нем и смотреть, что да как устроено.

Документация. Она была! В ней было дано описание основных систем фреймворка, как с ним работать и были описаны его ограничения.
Процесс разработки. Строился так: тебе падает задача, ты сам оцениваешь время, которое тебе понадобится для ее решения. Все эти оценки ты отражаешь в документе - плане. План ты строишь скурпулезно, описывая работу по часам. В нем ты можешь учесть и время на тестирование и время на непредвиденные трудности. Было одно условие: соблюдение временных рамок плана. Ну, или если есть отклонения по времени, сообщать заранее, а не тянуть до последнего. Но такое случалось редко, поскольку скурпулезное построение плана позволяет распределить время очень точно. В общем - это удобно. И разработчику - детально знает фронт работ, знает крайний срок, распоряжается им. И тем более начальству - иметь точные сроки реализации мечта любого начальства. Во время кодинга, конечно, ты можешь советоваться с более опытными разработчиками - тебе всегда окажут помощь. Благодать.

Используемые технологии: фреймворк использовал последние стабильные достижения в области js-кода(например: canvas, web audio API и т.д.). Конечно же, мы использовали систему контроля версий. Трекером задач служил redmine.

Такое ощущение, что тимлид начитался книги "Совершенный код" и, вдохновленный идеями из этой книги, решил многие из них воплотить в жизнь. Какой гик о таком не мечтает?
Теги:  работа 

Singleton на PHP

 22 ноября 2015 г. 22:24

Синглтон – это, наверное, самый простой из шаблонов проектирования, и в то же время, самый распространенный. Его часто используют для создания подключения к БД, логирования событий, использования конфигурационного файла и по многим-многим другим причинам. Цель этого шаблона - гарантировать существование единственного экземпляра класса (такие экземпляры и называются синглтонами). Причина, по которой обычно он создается: обеспечить доступ к синглтону всему приложению.

Дело в том, что при разработке кода в ООП стиле следует избегать глобальных переменных. И чтобы не использовать их в проекте и был придуман этот шаблон.

Теперь разберемся, как реализовывать типичных синглтон.

Читать далее  

Javascript-клиент для звонков через voximplant

Категория: Javascript
 12 ноября 2015 г. 19:09

Некоторое время назад появилась необходимость интегрировать программный продукт с сервисом voximplant. Поскольку еще ни разу не приходилось с ним работать, наверное, как и многие, начал искать готовые рабочие примеры интеграции. И каково же было мое удивление, когда оказалось, что информации не так уж и много. А примеров качественного кода и вовсе не было найдено.

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

Читать далее  

Теги:  javascript  voximplant 

Реализация ORM в PHP на примере ActiveRecord

 3 ноября 2015 г. 20:52

ORM(object-relational mapping) переводится как объектно-реляционное отображение. Наверное, самой распространенной парадигмой разработки ПО является парадигма объектно-ориентированного программирования. В ней все объекты реального мира представляются аналогичными объектами в коде с тем-же или похожим набором характеристик. Программистам, пишущим программы в ООП-парадигме, непривычно писать во многих частях SQL-запросы к БД для выполнения каких-либо действий. Эти действия должны быть инкапсулированы в определенном классе или наборе классов, которые бы взаимодействовали с БД и скрывали ее структуру.

Одной из реализаций технологии ORM является шаблон проектирования ActiveRecord, описанный Мартином Файлером в своей книге "Шаблоны архитектуры корпоративных приложений". Класс, реализующий данный шаблон, должен удовлетворять некоторым требованиям:

  • класс представляет собой отображение таблицы из БД;
  • каждый экземпляр класса представляет собой строку в отображаемой таблице;
  • код взаимодействует с отображаемой таблицей исключительно через реализованный класс.

Думаю, будет понятнее на наглядном примере.

Читать далее  

PHP и MySQL.Исчерпывающее руководство

Категория: Книги
 22 октября 2015 г. 23:33

Автор: Бретт Маклафлин

Обложка книги 'PHP и MySQL.Исчерпывающее руководство'

В трех словах: просто и доступно. Причем, книга более подойдет совсем новичкам, нежели бывалым программистам.

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

Книга дает главное: понимание, как работает php в связке с MySql; как код встраивается в HTML-страницы и как он взаимодействует с js-кодом. Также присутствует краткое описание синтаксиса SQL. Книга не обошла стороной и такую тему как обработка ошибок. Рассматривается работа с сессиями и cookie-файлами. Затронуты проблемы авторизации.

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

Теги:  php  книга  php7 

Разница между фреймворком и библиотекой

 19 октября 2015 г. 9:22

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

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

Читать далее