嵌套功能挂起

时间:2014-03-30 16:05:33

标签: php

如何嵌套循环的函数?

我正在尝试创建一个函数来计算子类别的数量并计算其中的子类别。

<?php

function hier_data( $parent_category = 0, $category_count = 0 ) {

    global $db_connect;

    // Select query
    $query = "
        SELECT
            *
        FROM
            " . DB_PFIX . "product_categories
        WHERE
            category_parent = '" . $parent_category . "'
    ";

    // Return results
    if( $results = mysqli_query( $db_connect, $query ) ) {
        while( $result = mysqli_fetch_assoc( $results ) ) {

            $category_count = $category_count + 1;

            $category_count = hier_data( $result["category_id"], $category_count );
        }
    }

    return $category_count;

}

?>

注意:只有当我在查询结果下删除while循环中的行hier_data( $result["category_id"], $category_count );时,该函数才能计算一个子类别。但是我不能让函数循环自己来计算子类别子猫。

1 个答案:

答案 0 :(得分:1)

您可以使用子查询或连接获取计数,但这意味着对每一行进行计数。因此,运行单独的查询可能是一个好主意,如:

  "SELECT COUNT(*)," , category
    FROM " . DB_PFIX . "product_categories
    WHERE category_parent = '" . $parent_category . "'
    GROUP BY category";