САМОУЧИТЕЛЬ PHP 4



         

Полноценный класс таблицы MySQL - часть 12


function TableGetDistinct($field,$Expr="")

{ $this->Error="";

 if(!$Expr) $Expr="1=1";

 $r=mysql_query("select distinct $field from ".

 $this->TableName." where ($Expr) and (id>1)");

 // distinct НЕ работает вместе с order by! Почему — неясно...

 if(!$r) { $this->Error=mysql_error(); return 0; }

 for($Arr=array(),$i=0,$n=mysql_num_rows($r); $i<$n; $i++)

 $Arr[]=mysql_result($r,$i,0);

 return $Arr;

}

function GetDistinct($field,$Expr="")

{ return $this->TableGetDistinct($field,$Expr); }

}; // Конец класса

?>

А вот пример применения этого класса (листинг 31.3). Делает он следующее: открывает таблицу в некоторой базе данных (если таблицы с таким именем не существует, создает ее) и добавляет одну пробную запись.

Листинг 31.3. Пример использования класса MysqlTable

<?

include "librarian.phl"; // подключаем библиотекарь

Uses("MysqlTable"); // подключаем модуль с классом таблицы

// Устанавливаем соединение с базой данных

mysql_connect("localhost");

mysql_select_db("test");

// Открываем таблицу

$t=new MysqlTable("test",array("t"=>"int"));

// Добавляем запись

$d=array("t"=>time());

$t->Add($d);

// Работаем с блоком информации

$Inf=$t->GetInfo();

$Inf["a"]=@$Inf["a"]+1;

$Inf["b"]=@$Inf["b"]+10;

echo $Inf["a"]," ",$Inf["b"],"<br>";

$t->SetInfo($Inf);

// Выбираем все записи и выводим их

$d=$t->Select();

foreach($d as $id=>$Data) {

 echo "$id: ".$Data['t']."<br>";

}

?>

Попробуйте запустить этот сценарий (естественно, сделав так, чтобы ему был доступен библиотекарь), а затем понажимать кнопку Обновить

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




Содержание  Назад  Вперед