понедельник, 27 октября 2008 г.

Задать статус группе радио кнопок в зависимости от перекючателя

Возникла задача сделать доступными/недоступными группу радио-кнопок в зависимости от состояния чекбокса. Мысль использовать jquery пришла сразу, красота код неоспорима (хотя можно было бы просто Джава Сриптом пройтись по элементам формы):

У нас есть checkbox с id="main_default", тогда код будет следующий:

function Select(){
   $(":radio").attr('disabled', $("#main_defalt").attr('checked'));
}

среда, 22 октября 2008 г.

Особенности работы с mysql_fetch_array в PHP

При создании метода в класе доступа к БД, часто необходимо выбрать только первую запись, при этом метод вернет хеш. Но если запрос типа - "SELECT count(*) FROM users", то тут надо вернуть просто переменную.

Решение может быть следующие:

 function select_first($sql){
          $sql.=" LIMIT 1"  ;
          $sth = $this->execute($sql);
          $num = ($sth?mysql_num_rows($sth):0);
          if ($num == 1){
             $row = mysql_fetch_array($sth);
             if(sizeof($row)==2){
                 return $row[0];
             }else{
                return $row;
             }             
          }else{
             return false; 
          }   
        }         

Ключевым будет блок:

 if(sizeof($row)==2){
                 return $row[0];
             }else{
                return $row;
             }             

Здесь мы используем свойство  mysql_fetch_array, зная что возвратится хеш+просто массив. Например если бы мы вызвали метод с таким запросом: 

$res=select_first("SELECT name FROM users WHERE id=1");

то если допустим такой юзер есть и его имя Sergey, то:

$row['name'] = "Sergey" 
$row[0] ="Sergey"

SizeOf($row) = 2 в случае возврата 1 поля. Потому мы всегда при необходимости возвратим хеш или просто переменную.

Это решение не претендует на полноту, так как класы по работе с БД сейчас довольно продвинутые (для ПХП), просто мне пришлось работать с проектом, где работа с БД реализована довольно примитивно. Но может это кому-то понадобится :)


понедельник, 13 октября 2008 г.

Бета-тестирование РНР 5.3

Компания Zend Technologies объявила о выпуске новой бета-версии популярного языка серверных сценариев для написания веб-приложений PHP 5.3 в октябре этого года. В новой версии реализована сборка мусора в памяти, поддержка пространств имен и упаковка PHP-приложений в архивы формата PHAR. Кроме того, серьезно оптимизировано быстродействие технологий PHP на платформе Windows за счет применения современных компиляторов Microsoft, а также современных компонентов других производителей для поддержки XML, операций с графикой и доступа к БД. 


Поддержка пространства имен в PHP 5.3 позволяет компоновать PHP-приложения из кода, полученного из разных источников. Этот механизм помогает сделать PHP-приложения по настоящему модульными, а также применять одновременно несколько технологических платформ, таких, как Zend PHP и PEAR (PHP Extension and Application Repository).

Новый механизм сборки мусора в памяти помогает платформе PHP 5.3 использовать память с максимальной эффективностью. Благодаря этому механизму подолгу работающие PHP-сценарии избавлены от утечек памяти. Упаковка PHP-приложений в архивы формата PHAR (PHP Archive) серьезно облегчит распространение и развертывание приложений. Концепция PHAR полностью аналогичная принципам, заложенным в давно известный формат файлов JAR (Java Application Archive), используемый для распространения Java-приложений.

Также в комплект поставки PHP 5.3 будут включены различные дополнительные компоненты, в том числе клиентская библиотека для интеграции PHP с СУБД MySQL. По заверениям разработчиков, приложения PHP 5.2 должны сохранить работоспособность в среде PHP 5.3. Также расширена поддержка интернационализации приложений – библиотека ICU (International Components for Unicode) поможет создавать полностью многоязычные приложения.

Хотя ранее версию PHP 5.3 планировалось выпустить до конца 2008 года, сейчас сроки выпуска перенесены на первый квартал 2009 г. Вместе с финальной версией PHP 5.3 будет доступна открытая платформа WSF/PHP (Web Services Framework) для полной реализации сервисно-ориентированной архитектуры SOA (Service-Oriented Architecture) в среде PHP. Компания WSO2, которая занимается разработкой и поддержкой WSF/PHP, обещает реализовать полноценные возможности для создания приложений электронной коммерции.