【问题标题】:Codeigniter EquivalentCodeigniter 等效项
【发布时间】:2016-08-09 17:12:17
【问题描述】:

我正在寻求一点帮助,非常感谢,我有一个原始的意大利面条 php 代码我正在转换为 codeigniter,似乎可以工作但输出不准确,我的语法缺少什么

原始的php

  function displayMenu($parent =0) {

        $query =mysql_query("SELECT * "
                . " FROM tbl_org_structure "
                . "WHERE parent_id='$parent'"

                ) or die(mysql_error());
        if(mysql_num_rows($query) > 0 ){
            echo  '<ul>';
            while ($row = mysql_fetch_array($query)) {
                echo '<li>'.$row['name'];
                displayMenu($row['id']);
                   echo '</li>'; 
            }
            echo '</ul>';
        }
    }

我的 codeigniter 等价物

    function getHierarchy($parent=0){

        $hierarchy = $this->db
                ->where('parent_id',$parent)
                ->get('tbl_org_structure')
                ->result();
        $stringBuilder='<ul>';
        foreach ($hierarchy as $chainOfCommand):          
            $stringBuilder.='<li>'.$chainOfCommand->name;
            $this->getHierarchy($chainOfCommand->id);
            $stringBuilder.='</li>';
        endforeach;
        $stringBuilder.='</ul>';

 echo $stringBuilder;

    }

原始 php 输出

董事会

Chief Executive Officer (CEO)
    Finance Department
        FC
            test
        CA
    Human Resources Department (HR)
        HOR
        MO
    IT Department
        TSM
        Sys Dev
    Sales Department
        Acc M
        MD
    Production
        PC
        DM

codeigniter 输出

  test

FC
CA

HOR
MO

TSM
Sys Dev

Acc M
MD

PC
DM

Finance Department
Human Resources Department (HR)
IT Department
Sales Department
Production

Chief Executive Officer (CEO)

Board of Directors

建议

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您在返回递归堆栈之前echoing 结果,因此您一直向下移动到层次结构中的叶子,回显该叶子,返回并回显父级,依此类推.您应该改为return $stringBuilder。然后你需要echo getHierarchy()的调用代码。

    或者,就像在displayMenu 中所做的那样立即回显所有内容,而不是构建字符串。

    【讨论】:

    • 非常感谢,您的评论有很大的不同。我明白了。干杯
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2011-08-19
    • 2023-03-20
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多