获取具有完整路径的类别列表

时间:2019-04-10 08:33:06

标签: php href

目前,我有一个显示类别列表的代码。我能够制作一个子类别,但我想使其无限无限,例如category / sub-category / sub-sub-category / etc / article。类别数据库的结构是id,title,slug parent_id,默认情况下为0。

我试图循环查询,但是有点不知道如何正确地执行它,只是没有用。

功能如下:

#include <stdio.h>

int print_double(double value, int n, int p) {
    char buf[400];
    int dot;
    int len;
    len = snprintf(buf, sizeof buf, "%.*f", p, value);
    if (len >= (int)sizeof(buf)) {
        printf("value too large: %g\n", value);
        return -1;
    }
    for (dot = 0; dot < len;) {
        if (buf[dot++] == '.')
            break;
    }
    while (len - dot > n && buf[len - 1] == '0')
        len--;
    if (len > 0 && buf[len - 1] == '.')
        len--;
    buf[len] = '\0';
    printf("%s\n", buf);
    return len;
}

int main(int argc, char *argv[]) {
    print_double(5.0, 1, 2);
    print_double(5.1, 1, 2);
    print_double(5.15, 1, 2);
    return 0;
}

在HTML中:

const user = {...this.state.user}
user[event.target.name] = event.target.value
this.setState({
    user
})

1 个答案:

答案 0 :(得分:0)

有很多不同的方法可以做到这一点,但我认为最好的方法是,首先将所有类别从数据库中加载到PHP中,只要不存在成千上万的类别。

$result = $db->query("SELECT category.id, category.parent_id, category.slug$lang FROM category");

Populate $categories as an array of id => (slug, id, parent_id) items.

然后使用递归php函数构建类别的面包屑。

function getBreadcrumb($categories, $categoryId) {

    $thisCat = $categories[$categoryId];

    if ($thisCat['parent_id'] != 0)
    {
       return array_merge(getBreatcrumb($thisCat['parent_id']), array($thisCat['slug']));
    }   
    else
    {
       return array($thisCat['slug']);
    }
}