Выравнивание элементов списка (меню) по ширине, HTML+CSS

Иногда необходимо, чтоб меню точно выравнивалась по ширине. Тут на помощь приходят несколько замечательных приёмов, найденных мной на одном из форумов
Continue reading ‘Выравнивание элементов списка (меню) по ширине, HTML+CSS’ »

Динамическое формирование where для создания фильтров

Написать этот пост меня побудили вопросы на эту тему на форуме php.ru. Итак, нужно при задании фильтров каких-то объектов (например, товаров) динамически формировать where. Сейчас я покажу, как это делается в построителях запросов известных мне фреймворкоа. Возьмём простой случай, когда все поля для фильтрации в одной таблице, и не требуется join-ов.
Continue reading ‘Динамическое формирование where для создания фильтров’ »

Запрос на удаление дубликатов

Для удаления дубликатов записей можно использовать следующие команды:
table_name — заменить на название таблицы
unique_key — заменить на поле в котором, после выполнения запроса, не останется дубликатов.
ID — уникальный ключ в таблице.
DELETE tn FROM table_name tn JOIN (SELECT MAX(ID) AS ID FROM TABLE_NAME GROUP BY unique_key HAVING COUNT(*) > 1) tn2 USING(ID)
*хорошо работает на больших таблицах, проверенно =)

Правильные окончания для количества

Ещё одна функция из разряда «маленький полезный пустячок». Задача — подставить правильное окончание для количества чего-нибудь. К примеру, 1 комментарий, 2 комментария и т.п.

function wordsSpan($n = 0, $words) {
    $words    = explode('|', $words);
    $n        = intval($n);
    return ($n % 10==1 && $n % 100!=11) ? $words[0] . $words[1] : ($n % 10>=2 && $n % 10<=4 && ($n % 100<10 || $n % 100>=20) ? $words[0] . $words[2] : $words[0] . $words[3]);
}

foreach ($i in range(1, 100))
   echo $i . " " . wordSpan($i, "комметари|й|я|ев");

MySQL, сортировка в произвольном порядке (in и сортировка)

Задача такая: выдать все строки таблицы с id, входящим во множество (13, 15, 14, 29, 11), и к тому же именно в таком порядке. Недавно обнаружил, что в MySQL есть оператор, решающий именно эту задачу
Continue reading ‘MySQL, сортировка в произвольном порядке (in и сортировка)’ »

Универсальный обработчик форм на PHP своими руками

Практически во всех фреймворках реализована очень удобная работа с формами, позволяющая легко сделать валидацию вводимых данных. А что, если проект не настолько крупный, чтоб использовать целый фреймворк, но формы для ввода данных все равно хочется проверять. Сегодня я хочу показать, как на php можно написать достаточно универсальный класс валидации данных.
Continue reading ‘Универсальный обработчик форм на PHP своими руками’ »

AJAX-формы с помощью плагина jQuery Form

Плагин jQuery Form существует достаточно давно, но я им начал пользоваться относительно недавно. Отправка формы по AJAX — задача, в принципе, не сложная, и я обычно программировал её сам. Но недавно решил попробовать этот плагин, и понял, что это гораздо удобнее.
Continue reading ‘AJAX-формы с помощью плагина jQuery Form’ »