目前,我有一个显示类别列表的代码。我能够制作一个子类别,但我想使其无限无限,例如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
})
答案 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']);
}
}