| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Mizter Egoist 09.06.2017 13:21 / 09.06.2017 13:22
@_checkAttr[eID;data]
^if(def $eID){
$_attr[^get.query[
$.table[attributes]
$.type[hash]
$.select[
$.eID[= '$eID']
]
]]
$attr[^get.selectData[$_attr]]
$attrTable[^table::create{id img name type link attr}]
$updateTable[^table::create{id eID img name type link attr}]
$insertTable[^table::create{eID img name type link attr}]
^data.foreach[id;item]{
^attrTable.append[
$.id[$id]
$.img[$item.img]
$.name[$item.name]
$.type[$item.type]
$.link[$item.link]
$.attr[[^item.arr.foreach[;values]{^json:string[$values]}[, ]]]
]
}
$attrHash[^attrTable.hash[id]]
^attrTable.menu{
$attrExist[$attr.[$attrTable.id]]
^if($attrExist){
^if($attrExist.name ne $attrTable.name || $attrExist.type ne $attrTable.type || $attrExist.attr ne $attrTable.attr){
^updateTable.append[
$.id[$attrTable.id]
$.eID[$eID]
$.img[$attrTable.img]
$.name[$attrTable.name]
$.type[$attrTable.type]
$.link[$attrTable.link]
$.attr[$attrTable.attr]
]
}
}{
^insertTable.append[
$.eID[$eID]
$.img[$attrHash.[$attrTable.id].img]
$.name[$attrHash.[$attrTable.id].name]
$.type[$attrHash.[$attrTable.id].type]
$.link[$attrHash.[$attrTable.id].link]
$.attr[$attrHash.[$attrTable.id].attr]
]
}
}
^if($updateTable){
^_updateAttr[$eID;$updateTable]
}
^if($insertTable){
^_insertAttr[$eID;$insertTable]
}
}
@_insertAttr[eID;data]
^if(def $eID){
^self._transaction{
^void:sql{
INSERT INTO attributes
(eID, img, name, type, link, attr)
VALUES
^data.menu{(
'$data.eID',
'$data.img',
'$data.name',
'$data.type',
'$data.link',
'$data.attr'
)}[, ]
}
}
}
@_updateAttr[eID;data]
^if(def $eID){
^self._transaction{
^void:sql{
^data.menu{
UPDATE `attributes`
SET
eID = '$data.eID',
img = '$data.img',
name = '$data.name',
type = '$data.type',
link = '$data.link',
attr = '$data.attr'
WHERE id = $data.id
}
}
}
}С таким работать можно, или тут что-то можно улучшить?