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



         

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


 // Если задан $id, то устанавливаем в записи этот идентификатор

 if($id) $Upd["id"]=$id;

 // Загружаем старую запись. Она должна быть одна.

 $r=$this->SelectQuery("id=".$Upd["id"]);

 $Rec=$this->GetResult($r);

 // Если не удалось, значит, неверное обновление — записи

 // еще не существует

 if(!$Rec) { $this->Error="NotExists"; return 0; }

 // Иначе все в порядке — добавляем. Сначала обновляем

 // поля и упаковываем переменные

 $Rec=$Upd+$Rec; $Upd=$Rec;

 if(!$this->PreModify($Rec)) return 0;

 $Rec[DataField]=$this->_PackFields($Rec);

 // Затем составляем список полей для обновления

 $Lst=array();

 foreach($this->Fields as $name=>$type)

 $Lst[]="$name='".Apostrophs($Rec[$name])."'";

 $Lst=implode($Lst,",");

 // Выполняем запрос

 if(!mysql_query("update ".$this->TableName.

 " set $Lst where id=".$Rec["id"]))

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

 $this->PostSelect($Rec);

 return 1;

}

function Update(&$Upd,$id=0) { return $this->TableUpdate(&$Upd,$id); }

// Возвращает число записей, удовлетворяющих выражению $Expr.

// Если $Expr не задано, возвращает число ВСЕХ записей.

function TableGetCount($Expr="")

{ $this->Error="";

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

 $r=mysql_query("select count(if(($Expr) and (id>1),1,NULL)) from ".

 $this->TableName);

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

 $a=mysql_fetch_array($r);

 return $a[0];

}

function GetCount($Expr="") { return $this->TableGetCount($Expr); }

// Возвращает СПИСОК всех уникальных значений поля $field

// в таблице, удовлетворяющих тому же условию $Expr.

// ВНИМАНИЕ: эта функция работает лишь тогда, когда поле $field

// присутствовало среди полей $Fields при вызове конструктора.

// В противном случае генерируется ошибка.

// Рекомендуется при создании таблицы для поля $field создать индекс.




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