1. 程式人生 > >csdn的樹型結構php+mysql的實現方式(二)

csdn的樹型結構php+mysql的實現方式(二)

server.php檔案,php的xmldom我不會用哈哈... <?
header("Content-type:text/xml;charset=gb2312"); //不寫要亂碼滴
  class DB_xx extends DB_sql{
這裡用的是phplib
  }
session_start();
$NodeId;// 注意這個變數哦,要和htc檔案的某個地方對應,這個是當前節點的id
$level="";
session_register("level");
$xml="<?xml version='1.0' encoding='gb2312'?>/r/n";
$xml=$xml."<xml>/r/n";
if ($NodeId==""){$NodeId=0;}
if ($level=="")
{$level=0;}
$sql2="select * from qk_kind  where kind_parentid =".$NodeId." and kind_level>=".$level; //取得該節點下的位元組點

$dbw = new DB_xx;
$dbw->query($sql2);
$i=0;
if($dbw->nf()>0){
  while($dbw->next_record())
  {
$sortArray[$i]=array(
$dbw->f("kind_id"),$dbw->f("kind_level"),$dbw->f("kind_name"),$dbw->f("kind_parentid"));
  $i++;
  }
  }
  
for($i=0;$i<count($sortArray);$i++){
 $xml=$xml."<TreeNode id='".$sortArray[$i][0]."'>/r/n";
 $xml=$xml."<NodeText>".$sortArray[$i][2]."</NodeText>/r/n";
 $xml=$xml."<title></title>/r/n";
 $xml=$xml."<NodeUrl>"."link"."</NodeUrl>/r/n";
 $xml=$xml."<child>".num($sortArray[$i][0],$dbw,$level)."</child>/r/n";
 $xml=$xml."<target></target>/r/n";
 $xml=$xml."</TreeNode>/r/n";
}
$xml=$xml."</xml>";
print $xml; function num($temp_id,$dbw,$level){// 早期的mysql不支援子查詢,所以我把阿信的子查詢sql拆成了兩個部分,這個函式的作用是取得當前節點下還有幾個子節點。

$sql1="select count(*) from qk_kind  where kind_parentid = ".$temp_id." and kind_level>=".$level;
$dbw->query($sql1);
$dbw->next_record();
return $dbw->f(0);
}
?> 然後是改htc檔案 Service:"server.php",// 節點資料檔案 找到這個函式function GetXml(objContainer,id){} 這裡XmlHttp.open("get",Config.Service+'? NodeId
='+id+'&tem'+Math.random(),true) 紅字部分,上面說了。就是是對應的。 ok可以用了...