=================================================
ファイル名:
dboper.inc.php
コード:
==================================== ==============
class dboper {
var $items;
var $result=0;
function find($l_value) {
for($j=1) ;$j<=$this->items["info_all"];$j++) {
if($l_value==$this->items["d_id][$j]"])
{ return($ j);終了; }
}
}
function del($id) {
//echo "del"." ".$id."
";
include("conn_db.php");
$Sql_Query ="d_id=$id の部門から削除";
$Query_Db=mysql_query($Sql_Query,$Connect);
//echo $Sql_Query;
include("conn_close.php");
}
機能アップデート( $d_id,$f_node,$l_node,$r_node) {
include("conn_db.php");
$Sql_Query="部門セット f_node=".$f_node.",l_node=".$l_node.",r_node =".$r_node." where d_id=".$d_id;
$Query_Db=mysql_query($Sql_Query,$Connect);
//echo $Sql_Query;
include("conn_close.php");
}
function d_tree($id,$base_id){///
//echo "do
";
$m=$this->find($base_id);//m は配列内の $base_id の位置です
$i=$this->find($id);
if(($this->items["l_node][$i]"]!=0))
{
//echo "向左下一级";
//echo "
";
$i=$this->find($this->items["l_node][$i]"]);
$this->d_tree ($this->items["d_id][$i]"],$base_id);
//exit;
}
if(($this->items["r_node][$i]"]! =0)&&($this->items["l_node][$i]"]==0))
{
//echo "向右下一级";
//echo "
" ;
$i=$this->find($this->items["r_node][$i]"]);
$this->d_tree($this->items["d_id][$ i]"],$base_id);
//exit;
}
if(($this->items["r_node][$i]"]==0)&&($this->items[ "l_node][$i]"]==0))
{
if($this->result==1){//関数を終了するための非常に重要なメソッド
return true;
}
$this->del($this->items["d_id][$i] "]);
$j=$i;//このノード情報を保存します
$i=$this->find($this->items["f_node][$i]"]);//それを見つけます親ノード
//begin------------------------------------------ --------
//このノードが削除したいノードの場合は、削除して関数を終了します
if(($this->items["r_node][$i]"]== $base_id)||($this->items["l_node][$i]"]==$base_id))
{
$this->result=1;
trueを返す;
}
//終了-------------------------------------------------- ------
else {
//begin------------------------------------- -----------------
//このノードが削除したいノードの子ノードの場合
//親ノードまで進んでfindを続行します
if($this-> ;items["r_node][$i]"]==$this->items["d_id][$j]"])
{
//echo "左上一级";
//エコー " $this->items["r_node][$i]"]=0;
$this->d_tree($this->items["d_id][$i]"],$ Base_id);
//exit;
}
if($this->items["l_node][$i]"]==$ this->items["d_id][$j]"])
{
//echo "右上一级";
//echo "
;
$this->items["l_node][$i]"]= 0;
$this->d_tree( $this->items["d_id][$i]"],$base_id);
//exit;
//end------ ----------------------------------------
}
}
}
function d_node_tree($id,$base_id) {
$m=$this->find($base_id);//m は $base_id の位置です配列内
$i=$this ->find($id);
if(($this->items["l_node][$m]"]!=0))
{
$i=$this->find($this ->items["l_node][$m]"]);//現在のノードの左側の子ノード
$j=$this->find($this->items["f_node][$m]"] );//現在のノードの親
$this->d_tree($this->gt;items["d_id][$i]"],$this->items["d_id][$i]"]); //左の子ツリー全体を削除します
if($this->items["r_node][$m]"]!=0) {
if($this->items["r_node][$j]"] ==$this->items["d_id][$m]"])//親の右側の子ノードの場合
{
$i=$this->find($this->items["r_node] [$m]"]);
$this->items["r_node][$j]"]=$this->items["d_id][$i]"];
$this->update ($this->items["d_id][$j]"],$this->items["f_node][$j]"],$this->items["l_node][$j]" ],$this->items["r_node][$j]"]);
//update where id = $this->items["d_id][$j]"]
$this->items ["f_node][$i]"]=$this->items["d_id][$j]"];
$this->update($this->items["d_id][$i] "],$this->items["f_node][$i]"],$this->items["l_node][$i]"],$this->items["r_node][$i] ]"]);
//update where id = $this->items["d_id][$i]"]
}
if($this ->アイテム["l_node][$j]"] ==$this->items["d_id][$m]"])//親の右側の子ノードの場合
{
$i=$this->find($this->items["r_node] [$m]"]);
$this->items["l_node][$j]"]=$this->items["d_id][$i]"];
$this->update ($this->items["d_id][$j]"],$this->items["f_node][$j]"],$this->items["l_node][$j]" ],$this->items["r_node][$j]"]);
//id = $this->items["d_id][$j]"] の場合に更新します
$this->items["f_node][$i]"]=$this->items["d_id][$j]"];
$this->update($this->items[" d_id][$i]"],$this->items["f_node][$i]"],$this->items["l_node][$i]"],$this->items[ "r_node][$i]"]);
//update where id = $this->items["d_id][$i]"]
$this->del($this->アイテム["d_id][$m]"]);
}
if($this->items["r_node][$m]"]==0) {
if($this->items [" r_node][$j]"]==$this->items["d_id][$m]"])//親の右の子ノードの場合
{
$this->items["r_node][$ j]"]=0;
$this->update($this->items["d_id][$j]"],$this->items["f_node][$j]"],$ this->items["l_node][$j]"],$this->items["r_node][$j]"]);
//update where id = $this->items["d_id ][$j]"]
}
if($this->items["l_node][$j]"]==$this->items["d_id][$m]"])//親の右側の子ノードの場合
{
$this->items["l_node][$j]"]=0;
$this->update($this-> ;アイテム["d_id][$j] "],$this->items["f_node][$j]"],$this->items["l_node][$j]"],$this->items["r_node][$j] ]"]);
//update where id = $this->items["d_id][$j]"]
$this->del($this->items["d_id] [$ m]"]);//del ノード自体
}
return true;
}
if(($this->items["l_node][$m]"]==0))
{
if ($this->items["r_node][$m]"]!=0) {
$j=$this->find($this->items["f_node][$m]"] );//現在のノードの親
if($this->items["r_node][$j]"]==$this->items["d_id][$m]"])//親の場合右の子ノード
{
$i=$this->find($this->items["r_node][$m]"]);//現在のノードの右の子ノード
$this->update($this->items[ "d_id][$j]"],$this->items["f_node][$j]"],$this->items["l_node][$j]"],$this->items ["d_id][$i]"]);
//update where id = $this->items["d_id][$j]"]
$this->update($this->items[ "d_id][$i]"],$this->items["d_id][$j]"],$this->items["l_node][$i]"],$this->items ["r_node][$i]"]);
//update where id = $this->items["d_id][$i]"]
if($this->items["l_node ][$j]"]==$this->items["d_id][$m]"])//親の右の子ノードの場合
{
$i=$this->find($this- >items["r_node][$m]"]);
$this->update($this->items["d_id][$j]"],$this->items["f_node] [$j]"],$this->items["d_id][$i]"],$this->items["r_node][$j]"]);
//id = $ の場合に更新this->items["d_id][$j]"]
$this->items["f_node][$i]"]=$this->items["d_id][$j]"];
$this->update($this->items["d_id][$i]"],$this->items["d_id][$j]"],$this->items[" l_node][$i]"],$this->items["r_node][$i]"]);
//id = $this->items["d_id][$i]"] を更新します。
}
}
if($this->items["r_node][$m]"]==0) {
$j=$this->find($this-> ;items["f_node][ $m]"]);//現在のノードの親
if($this->items["r_node][$j]"]==$this->items["d_id][$m]"])
{
$this->items["r_node][$j]"]=0;
$this->update($this->items["d_id][$ j]"],$this- >items["f_node][$j]"],$this->items["l_node][$j]"],$this->items["r_node][$j]"]);
//id = $this->items["d_id][$j]"]
を更新します
}🎜 if($this->items["l_node][$j]"]==$this->アイテム["d_id][$m]"])🎜 {
$this->items["l_node][$j]"]=0;
$this->update($this->items["d_id][$j]"],$this-> ;items["f_node][$j]"],$this->items["l_node][$j]"],$this->items["r_node][$j]"]);
/ /update where id = $this->items["d_id][$j]"]
}
}
$this->del($this->items["d_id][$m]"]) ;
return true;
}
}
function showinfo_0($status){//
include("conn_db.php");
$Sql_Query="select * fromDepartment order by d _id";
$Query_Db=mysql_query( $Sql_Query,$Connect);
$info_all=mysql_num_rows($Query_Db);
$this->items["info_all"]=$info_all;
if($status==1) {//when status=1 showすべてのデータはデータベースから取得します
$MNums=$info_all;
if($status==0) {//status=0 の場合、データベースから取得した 6 つのメッセージを表示します
$MNums=6;
}
for($i= 1;$i<=$MNums;$i++)
{
$Messages=mysql_fetch_array($Query_Db);
$this->items["d_id][$i]"]=$Messages["d_id"];
$this->items["f_node][$i]"]=$Messages["f_node"];
$this->items["node_value][$i]"]=$Messages["node_value" ];
$this->items["l_node][$i]"]=$Messages["l_node"];
$this->items["r_node][$i]"]=$Messages[" r_node"];
}
include("conn_close.php");
}
}
?>
======================== ==========================
ファイル名:
conn_db.php
コード:
============ ======================================
$Connect = @mysql_connect(' localhost','root','') または die("サーバーに接続できませんでした。後で試してください");
mysql_select_db("testxxx",$Connect);
?>
======== ==========================================
ファイル名:
addnode.inc .php
コード:
============================================ ======
class addnode{
function find($l_value) {
for($j=1;$j<=$this->items["info_all"];$j++ ) {
if($l_value==$this->items["d_id][$j]"])
{ return($j);exit; }
}
}
function search_id() {
include("conn_db.php");
$Sql_Query="d_id 記述による部門順から * を選択";
$Query_Db=mysql_query($Sql_Query,$Connect);
$Messages=mysql_ fetch_array($ Query_Db);
include("conn_close.php");
return $Messages["d_id"];
}
function insertnode($f_node,$node_value,$r_node) {
include("conn_db.php");
$Sql_Query="部門の値に挿入('','$f_node','$node_value','0','$r_node')";
$Query_Db=mysql_query($Sql_Query,$Connect);
include( "conn_close.php");
}
関数 update($d_id,$f_node,$l_node,$r_node) {
include("conn_db.php");
$Sql_Query="部門セット f_node=".$ を更新します。 f_node.",l_node=".$l_node.",r_node=".$r_node." where d_id=".$d_id;
$Query_Db=mysql_query($Sql_Query,$Connect);
//echo $Sql_Query;
include("conn_close.php");
}
function add($id,$node_value) {
$i=$this->find($id);
if(($this->items[ "l_node][$i]"]!=0))
{
$j=$this->find($this->items["l_node][$i]"]);
$これ- >update($this->items["d_id][$j]"],0,$this->items["l_node][$j]"],$this->items["r_node] [$j]"]);
$this->insertnode($this->items["d_id][$i]"],$node_value,$this->items["d_id][$j] "]);
$c_d_id=$this->search_id();
$this->update($this->items["d_id][$i]"],$this->items[" f_node][$i]"],$c_d_id,$this->items["r_node][$i]"]);
$this->update($this->items["d_id][$ j]"],$c_d_id,$this->items["l_node][$j]"],$this->items["r_node][$j]"]);
}
if(($ this->items["l_node][$i]"]==0))
{
$this->insertnode($this->items["d_id][$i]"],$node_value, 0);
$this->update($this->items["d_id][$i]"],$this->items["f_node][$i]"],$this-> search_id($this->items["d_id][$i]"]),$this->items["r_node][$i]"]);
}
}
関数 showinfo_0( $status){//
include("conn_db.php");
$Sql_Query="部門の順序から d_id で * を選択";
$Query_Db=mysql_query($Sql_Query,$Connect);
$info_all=mysql_num_rows($Query_Db);
$this->items["info_all"]=$info_all;
if($status==1) {//status=1 の場合、データベースから取得したすべてのデータを表示します
$MNums =$info_all;
if($status==0) {//status=0 の場合、データベースから取得した 6 つのメッセージを表示します
$MNums=6;
for($i=1;$i< =$MNums ;$i++)
{
$Messages=mysql_fetch_array($Query_Db);
$this->items["d_id][$i]"]=$Messages["d_id"];
$this->items[ "f_node][$i]"]=$Messages["f_node"];
$this->items["node_value][$i]"]=$Messages["node_value"];
$this-> items["l_node][$i]"]=$Messages["l_node"];
$this->items["r_node][$i]"]=$Messages["r_node"];
}
include ("conn_close.php");
}
}
?>