📄 udatalink.php
字号:
$sql = $sql.$p."`$d`='$v'";
}
$sql = $sql." WHERE `$u`='".$C_STR."' LIMIT 1 ";
mysql_query($sql);
} else {
// create NEW in all tables where needed except table[0]
$k_name = $this->c->table[$q]->key->name;
$sql = "INSERT INTO `$t_name` (`$k_name`";
for ($w=0; $w<count($this->c->table[$q]->param); $w++) {
$d = $this->c->table[$q]->param[$w]->name;
$sql = $sql.",`$d`";
}
$sql = $sql.",`$u`) VALUES (''";
for ($w=0; $w<count($this->c->table[$q]->param); $w++) {
$v = $data[$this->c->table[$q]->param[$w]->value];
$sql = $sql.",'$v'";
}
$sql = $sql.",'".$C_STR."'); ";
mysql_query($sql);
}
}
$this->printAction("update",$data[(string)$this->c->table[0]->key->value],0);
}
function insert($data){
// generation of UNIQUE field
$C_STR = md5(time()/rand(1,100));
// pass for all tables
for ($q=0; $q<count($this->c->table); $q++) {
$t_name = $this->c->table[$q]->name;
$u = $this->c->table[$q]->connect_field;
$k_name = $this->c->table[$q]->key->name;
$sql = "INSERT INTO `$t_name` (`$k_name`";
for ($w=0; $w<count($this->c->table[$q]->param); $w++) {
$d = $this->c->table[$q]->param[$w]->name;
$sql = $sql.",`$d`";
}
$sql = $sql.",`$u`) VALUES (''";
for ($w=0; $w<count($this->c->table[$q]->param); $w++) {
$v = $data[$this->c->table[$q]->param[$w]->value];
$sql = $sql.",'$v'";
}
$sql = $sql.",'".$C_STR."'); ";
//echo $sql."<br>";
mysql_query($sql);
}
$this->printAction("insert",$data[(string)$this->c->table[0]->key->value],mysql_insert_id());
}
function delete($data) {
// define KEY
$k_name = $this->c->table[0]->key->name;
$k_value = $data["gr_id"];
$C_STR = "#";
$u = $this->c->table[0]->connect_field;
$t_name = $this->c->table[0]->name;
// define UNIQUE field name and value
$r = mysql_query("SELECT `$u` FROM `$t_name` WHERE `$k_name`='$k_value' LIMIT 1 ");
while ($out = mysql_fetch_object($r)) { $C_STR = $out->$u; }
mysql_free_result($r);
// delete from all tables according
for ($q=0; $q<count($this->c->table); $q++) {
$t_name=$this->c->table[$q]->name;
$u = $this->c->table[$q]->connect_field;
mysql_query("DELETE FROM `$t_name` WHERE `$u`='$C_STR' LIMIT 1 ");
}
$this->printAction("delete",$data[(string)$this->c->table[0]->key->value],0);
}
function printXMLHeader($tag="data", $add=""){
header("Content-type:text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<".$tag." ".$add." >";
$this->tag=$tag;
}
function printXMLFooter($tag="data"){
echo "</".$this->tag.">";
}
function printAction($action,$sid,$tid){
echo "<action type='".$action."' sid='".$sid."' tid='".$tid."'/>";
}
function getXML(){
switch((string)$this->c->type){
case "tree":
$table= (string)$this->c->table->name;
$id= (string)$this->c->table->key->name;
$pid= (string)$this->c->table->pkey->name;
$order= (string)$this->c->table->order->name;
$name= (string)$this->c->table->text->name;
$userdata=""; //(string)$this->c->table["name"];
$out=$this->getXMLTree($table, $id, $pid, $name, $userdata, 0, $order);
echo $out;
break;
default:
return $this->getXMLGrid();
break;
}
}
function getXMLTree($table, $id, $pid, $name, $userdata, $sid, $order){
$data=mysql_query("SELECT $id, $pid, $name".(($userdata=="")?"":(",".$userdata))." FROM ".$table." WHERE $pid=$sid ORDER BY ".$order);
$out="";
if ($data)
while($adata=mysql_fetch_assoc($data)) {
$out.="<item id='".$adata[$id.""]."' text='".$adata[$name.""]."'>";
$out.=$this->getXMLTree($table, $id, $pid, $name, $userdata, $adata[$id.""],$order);
if ($userdata){ $out.="<userdata name='".$userdata."'>".$adata[$userdata.""]."</userdata>"; }
$out.="</item>";
}
return $out;
}
function getXMLGrid() {
// field for connect rows is $this->c->connect_field
// first take all possible connected keys from table[0] // STRONGLY
$a = array(); // all unical values for selected elements will here
$i = $this->c->table[0]->connect_field;
$t = $this->c->table[0]->name;
$r = mysql_query("SELECT `$i` FROM `$t`");
while ($out = mysql_fetch_object($r)) { array_push($a,$out->$i); }
mysql_free_result($r);
// generating SQL's for every ROW
for ($q=0; $q<count($a); $q++) {
$connect_name = $this->c->table[0]->connect_field;
$k_name = $this->c->table[0]->key->name;
$t_name = $this->c->table[0]->name;
$i_value=$a[$q];
$res = mysql_query("SELECT `$k_name` FROM `$t_name` WHERE `$connect_name`='$i_value' ");
$o = mysql_fetch_object($res);
if (!empty($o)) {
$k=$o->$k_name;
// generating ROWs form all tables according $a[$q] - unic field
echo " <row id=\"".($k)."\">\n";
for ($w=0; $w<count($this->c->table); $w++) {
$connect_name = $this->c->table[$w]->connect_field;
$t_name=$this->c->table[$w]->name;
$where_add="";
if ((string)$this->c->table->where!="") { $where_add=", ".(string)$this->c->table->where; }
$r = mysql_query("SELECT * FROM `$t_name` WHERE `$connect_name`='$i_value' ".$where_add);
$out = mysql_fetch_object($r);
if (!empty($out)) {
for ($p=0; $p<count($this->c->table[$w]->param); $p++) {
$h = $this->c->table[$w]->param[$p]->name;
echo " <cell>".$out->$h."</cell>\n";
}
}
mysql_free_result($r);
}
echo " </row>\n";
}
mysql_free_result($res);
}
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -