Maison > Questions et réponses > le corps du texte
1. La structure de la catégorie du tableau de classification est essentiellement composée de trois champs principaux : id, name et parent_id
2. Elle doit être imprimée et affichée dans un tel format de tableau
3. Comment dois-je écrire du code php ? (Permet la refonte des tables de base de données)
过去多啦不再A梦2017-05-16 13:03:50
Déjà réglé le niveau 3, qu'est-ce que le niveau 3 !? Connectez-le simplement vous-même deux fois.
select c1.name "一级分类", c2.name "二级分类", c3.name "三级分类"
from category c1
inner join category c2 on c1.id=c2.parent_id
inner join category c3 on c2.id=c3.parent_id
where c1.parent_id=0 #最高级;
De cette façon, vous pouvez obtenir la montre que vous souhaitez.
ringa_lee2017-05-16 13:03:50
La base de données est divisée en trois tables : first_level, second_level, third_level
first_level: id, name;
second_level: id, parent_id, name // second_level.parent_id = first_level.id
third_level: id, parent_id, name // third_level.parent_id = second_level.id
大家讲道理2017-05-16 13:03:50
Parcourez d'abord le tableau de niveau 3 et jetez-le dans le tableau de sous-éléments de niveau 2, de la même manière qu'Infinitus allait en sens inverse
PHP中文网2017-05-16 13:03:50
Ce que vous voulez, maîtres, c'est du code php
En fait, il s'agit d'un problème de réorganisation des classifications de deuxième et troisième niveaux incluses dans la classification de premier niveau,
static public function toLevel($cate, $delimiter = '|——', $parent_id = 0, $level = 0) {
$arr = array();
foreach ($cate as $v) {
if ($v['parent_id'] == $parent_id) {
$v['type'] = $level + 1;
$v['delimiter'] = str_repeat($delimiter, $level);
$arr[] = $v;
$arr = array_merge($arr, self::toLevel($cate, $delimiter, $v['cate_id'], $v['type']));
}
}
return $arr;
}
这个是我的无限极分类,你的三级分类和我类似,只要渲染前段的时候注意就好了