protected function Processing() { if (count($_GET) == 0 || !parent::Processing()) { return false; } $join_id = $this->join_sql->SelectArray(); $join_id = $join_id[0]; $new_join_array = array(); $delete_sql = ''; foreach ($this->elements as $name => $element) { if (!isset($_GET[$name])) { $element->SetValue(false); continue; } $pos = strrpos($name, "_"); $id = substr($name, $pos + 1); $new_join_array[] = $id; $element->SetURLValue(true); $delete_sql .= $join_id . "!='" . $id . "' AND "; } if (!$this->inserted) { if (strlen($delete_sql) > 0) { $delete_sql = substr($delete_sql, 0, -5); } $delete_sql = "DELETE FROM " . $this->join_sql->FromString() . " WHERE " . $this->join_sql->WhereString() . (strlen($delete_sql) > 0 ? " AND " . $delete_sql : ''); //echo $delete_sql."<BR />"; $this->db->Query($delete_sql); } if (count($new_join_array) == 0) { return; } if ($this->inserted) { if (!($insert_id = $this->db->Insert_ID())) { throw new Exception("Ошибка определения последней добавленной записи в БД"); } } else { $insert_id = $this->where_array[1]; } foreach ($new_join_array as $jid) { if (isset($this->join_array[$jid])) { continue; } $insert_sql = "INSERT INTO " . $this->join_sql->FromString() . " (" . $this->where_array[0] . ", " . $join_id . ") " . "VALUES ('" . $insert_id . "', '" . $jid . "')"; //echo $insert_sql."<BR />"; $this->db->Query($insert_sql); } return true; }
protected function Processing() { if (count($_GET) == 0 || !parent::Processing()) { return false; } $insert_sql = ''; $cols = $this->sql->InsertArray(); foreach ($cols as $cname) { if (is_a($this->elements[$cname], "FCheckbox")) { $this->elements[$cname]->SetValue(isset($_GET[$this->elements[$cname]->GetName()]) ? true : false); } else { $this->elements[$cname]->SetURLValue(isset($_GET[$this->elements[$cname]->GetName()]) ? $_GET[$this->elements[$cname]->GetName()] : ''); } $insert_sql .= "'" . $this->elements[$cname]->GetValue() . "', "; } $insert_sql = substr($insert_sql, 0, -2); // убираем лишнюю запятую $sql = "INSERT INTO " . $this->sql->InsertIntoString() . " VALUES (" . $insert_sql . ")"; // echo $sql."<br />"; $this->db->Query($sql); return true; }
protected function Processing() { if (count($_GET) == 0 || !parent::Processing()) { return false; } $sql_set = ''; $cols = array_flip($this->sql->SelectArray()); foreach ($this->elements as $name => $element) { if (!isset($_GET[$element->GetName()])) { continue; } $element->SetURLValue($_GET[$element->GetName()]); if (!isset($cols[$name]) || !$element->Changed()) { continue; } $sql_set .= $name . "='" . $element->GetValue() . "', "; } foreach ($this->checkboxs as $name => $cbx) { if ($cbx->Changed() || isset($_GET[$cbx->GetName()])) { continue; } $cbx->SetURLValue(false); if (!$cbx->Changed()) { continue; } $sql_set .= $name . "='" . $cbx->GetValue() . "', "; } if (strlen($sql_set) == 0) { return; } $sql_set = substr($sql_set, 0, -2); // убираем лишнюю запятую $sql = "UPDATE " . $this->sql->FromString() . " SET " . $sql_set . " " . "WHERE " . $this->sql->WhereString(); //echo $sql; $this->db->Query($sql); return true; }