这个表,肯定不能形成树了!加上parent 和 child 字段!

解决方案 »

  1.   


    同一级别的可能有点难度,有SQL高手的告诉。我想应该要把低级的作为字段,这样好一些。
      

  2.   


    fid 就是parent 了
    child 不是必须的你这种结构网上面有很多 class处理
    只是字段名不同
    搜一下就能找到了
      

  3.   

    目的就是展示目录树么?函数加javascript可以实现
      

  4.   


    <?php
    /*
    sortClass 无限分类类
    */
    class sortClass
    {
    //构造函数
    public $tree = array();//分类数组
    public $option = "";//下拉列表option集合

    function __construct($tableName)
    {
    global $db;
    $tempArr = array();
    $result = $db->query("select * from $tableName order by orderId asc,id asc");
    foreach($result as $key=>$val)
    {
    $tempArr[$key] = $val;
    }
    $this->init($tempArr);
    }
    function init($tempArr,&$sonArr="",$fid="")//初始化tree
    {
    foreach($tempArr as $val)
    {
    if($val["fid"] == 0 && $sonArr == "" && $fid == "")
    {
    $this->tree[$val["id"]]["id"] = $val["id"];
    $this->tree[$val["id"]]["fid"] = $val["fid"];
    $this->tree[$val["id"]]["orderId"] = $val["orderId"];
    $this->tree[$val["id"]]["name"] = $val["name"];
    $this->tree[$val["id"]]["son"] = array();
    $this->init($tempArr,$this->tree[$val["id"]]["son"],$val["id"]);
    }
    elseif(is_array($sonArr) && $val["fid"] == $fid)
    {
    $sonArr[$val["id"]]["id"] = $val["id"];
    $sonArr[$val["id"]]["fid"] = $val["fid"];
    $sonArr[$val["id"]]["orderId"] = $val["orderId"];
    $sonArr[$val["id"]]["name"] = $val["name"];
    $sonArr[$val["id"]]["son"] = array();
    $this->init($tempArr,$sonArr[$val["id"]]["son"],$val["id"]);
    }
    }
    }
    function getPosition($id)//获取当前位置
    {
    $id = 15;




    }
    function getSort()//获取树
    {
    return $this->tree;
    }
    function getOption()//获取option
    {
    $this->getoptionloop();
    return $this->option;
    }
    function getoptionloop($tree="",$repeat=0)//获取option循环
    {
    $tree = $tree=="" ? $this->tree : $tree;
    foreach($tree as $val)
    {
    if($repeat == 0)
    {
    $this->option .= "<option style='background:#D4D0C8;' value=". $val["id"] .">├" . str_repeat("─",$repeat) . $val["name"] . "</option>";
    }
    else
    {
    $this->option .= "<option value=" . $val["id"] . ">├" . str_repeat("─",$repeat) . $val["name"] . "</option>";
    }
    if($val["son"])
    {
    $this->getoptionloop($val["son"],$repeat+1);
    }
    }
    }
    }
    ?>
      

  5.   

    <?php
    /*
    sortClass 无限分类类
    */
    class sortClass
    {
    //构造函数
    public $tree = array();//分类数组
    public $option = "";//下拉列表option集合

    function __construct($tableName)
    {
    global $db;
    $tempArr = array();
    $result = $db->query("select * from $tableName order by orderId asc,id asc");
    foreach($result as $key=>$val)
    {
    $tempArr[$key] = $val;
    }
    $this->init($tempArr);
    }
    function init($tempArr,&$sonArr="",$fid="")//初始化tree
    {
    foreach($tempArr as $val)
    {
    if($val["fid"] == 0 && $sonArr == "" && $fid == "")
    {
    $this->tree[$val["id"]]["id"] = $val["id"];
    $this->tree[$val["id"]]["fid"] = $val["fid"];
    $this->tree[$val["id"]]["orderId"] = $val["orderId"];
    $this->tree[$val["id"]]["name"] = $val["name"];
    $this->tree[$val["id"]]["son"] = array();
    $this->init($tempArr,$this->tree[$val["id"]]["son"],$val["id"]);
    }
    elseif(is_array($sonArr) && $val["fid"] == $fid)
    {
    $sonArr[$val["id"]]["id"] = $val["id"];
    $sonArr[$val["id"]]["fid"] = $val["fid"];
    $sonArr[$val["id"]]["orderId"] = $val["orderId"];
    $sonArr[$val["id"]]["name"] = $val["name"];
    $sonArr[$val["id"]]["son"] = array();
    $this->init($tempArr,$sonArr[$val["id"]]["son"],$val["id"]);
    }
    }
    }
    function getPosition($id)//获取当前位置
    {
    $id = 15;




    }
    function getSort()//获取树
    {
    return $this->tree;
    }
    function getOption()//获取option
    {
    $this->getoptionloop();
    return $this->option;
    }
    function getoptionloop($tree="",$repeat=0)//获取option循环
    {
    $tree = $tree=="" ? $this->tree : $tree;
    foreach($tree as $val)
    {
    if($repeat == 0)
    {
    $this->option .= "<option style='background:#D4D0C8;' value=". $val["id"] .">├" . str_repeat("─",$repeat) . $val["name"] . "</option>";
    }
    else
    {
    $this->option .= "<option value=" . $val["id"] . ">├" . str_repeat("─",$repeat) . $val["name"] . "</option>";
    }
    if($val["son"])
    {
    $this->getoptionloop($val["son"],$repeat+1);
    }
    }
    }
    }
    ?>
      

  6.   


    如果fid是parent的话,楼主貌似是把fid指向id了!