动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 写不下了

作者来源: 
阅读 1227 人次 , 2006-3-29 4:08:00 


==================================================
file name:
dboper.inc.php
codes:
==================================================
<?
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);exit; }

}

}

function del($id) {
//echo "del"." ".$id."<br>";
include("conn_db.php");
$sql_query="delete from department where d_id=$id";
$query_db=mysql_query($sql_query,$connect);

//echo $sql_query;
include("conn_close.php");
}

function update($d_id,$f_node,$l_node,$r_node) {
include("conn_db.php");
$sql_query="update department set 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<br>";
$m=$this->find($base_id);//m is the position of $base_id in arrays
$i=$this->find($id);

if(($this->items["l_node][$i]"]!=0))
{
//echo "向左下一级";
//echo "<br>";
$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 "<br>";
$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){//very important method to exit my function
return true;
}
$this->del($this->items["d_id][$i]"]);
$j=$i;//save this node information
$i=$this->find($this->items["f_node][$i]"]);//find it's parent node
//begin-----------------------------------------------------
//if this node is the node you want to delete,delete it and exit function
if(($this->items["r_node][$i]"]==$base_id)||($this->items["l_node][$i]"]==$base_id))
{
$this->result=1;
return true;
}
//end--------------------------------------------------------
else {
//begin------------------------------------------------------
//if this node is the child node of you wanted to deleted node
//up to parent node and continue find
if($this->items["r_node][$i]"]==$this->items["d_id][$j]"])
{
//echo "左上一级";
//echo "<br>";
$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 "<br>";
$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 is the position of $base_id in arrays
$i=$this->find($id);

if(($this->items["l_node][$m]"]!=0))
{
$i=$this->find($this->items["l_node][$m]"]);//current node's left child node
$j=$this->find($this->items["f_node][$m]"]);//current node's parent
$this->d_tree($this->items["d_id][$i]"],$this->items["d_id][$i]"]);//del whole left child tree
if($this->items["r_node][$m]"]!=0) {
if($this->items["r_node][$j]"]==$this->items["d_id][$m]"])//if it's parent's right child node
{
$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->items["l_node][$j]"]==$this->items["d_id][$m]"])//if it's parent's right child node
{
$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]"]);
//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]"]
}
$this->del($this->items["d_id][$m]"]);
}

if($this->items["r_node][$m]"]==0) {
if($this->items["r_node][$j]"]==$this->items["d_id][$m]"])//if it's parent's right child node
{
$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]"])//if it's parent's right child node
{
$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]"]);//del node it self
}
return true;
}

if(($this->items["l_node][$m]"]==0))
{
if($this->items["r_node][$m]"]!=0) {

$j=$this->find($this->items["f_node][$m]"]);//current node's parent
if($this->items["r_node][$j]"]==$this->items["d_id][$m]"])//if it's parent's right child node
{
$i=$this->find($this->items["r_node][$m]"]);//current node's right child node
$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]"])//if it's parent's right child node
{
$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]"]);
//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["d_id][$j]"],$this->items["l_node][$i]"],$this->items["r_node][$i]"]);
//update where id = $this->items["d_id][$i]"]
}
}
if($this->items["r_node][$m]"]==0) {
$j=$this->find($this->items["f_node][$m]"]);//current node's parent
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->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 * from department 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 all data gets from database
$mnums=$info_all;
}
if($status==0) {//when status=0 show 6 messages gets from database
$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");
}
}
?>

==================================================
file name:
conn_db.php
codes:
==================================================
<?
$connect = @mysql_connect('localhost','root','') or die("could not connet to server please try later");
mysql_select_db("testxxx",$connect);
?>

==================================================
file name:
addnode.inc.php
codes:
==================================================

<?
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="select * from department order by d_id desc";
$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="insert into department values('','$f_node','$node_value','0','$r_node')";
$query_db=mysql_query($sql_query,$connect);
include("conn_close.php");
}

function update($d_id,$f_node,$l_node,$r_node) {
include("conn_db.php");
$sql_query="update department set 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]"]);

$this->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]"]);

}


}

function showinfo_0($status){//
include("conn_db.php");
$sql_query="select * from department 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 all data gets from database
$mnums=$info_all;
}
if($status==0) {//when status=0 show 6 messages gets from database
$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");
}

}
?>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:理论上实现真正意义的无限级别菜单
· 下一篇:一个简单编程思想在php与java中的实现比较:日期类
· 与数据库连接
· PEAR:创建中间的数据库应用层
· 建立灵巧结构的PHP程序
· 实战PHP/GTK
· 关于session的几个补充函数


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077