လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> သစ်ပင် -shaped infinite classification ဖွဲ့စည်းပုံကိုအကောင်အထည်ဖော်ရန်သင်ခန်းစာဖြည့်စွက်

သစ်ပင် -shaped infinite classification ဖွဲ့စည်းပုံကိုအကောင်အထည်ဖော်ရန်သင်ခန်းစာဖြည့်စွက်

gitbox 2025-07-28

နိဒါန်း

ဝက်ဘ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်မှုတွင်ထုတ်ကုန်ခွဲခြားခြင်း, ဆောင်းပါးခွဲခြားခြင်း, ခွင့်ပြုချက် Menterification စသည်ဖြင့်မည်သည့်အဆင့်တွင်အသိုက်ကိုထောက်ပံ့သောအထောက်အထားများအနေဖြင့်, ဤဆောင်းပါးသည် PHP ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြရန်အသေးစိတ်ကိုအသေးစိတ်ဖော်ပြရန်ဖြစ်သည်။

ဒေတာဖွဲ့စည်းပုံဒီဇိုင်း

Infinite-Level အမျိုးအစားခွဲခြားမှုကိုရရှိရန်အတွက်ကျိုးကြောင်းဆီလျော်သောဒေတာစားပွဲဝိုင်းဖွဲ့စည်းပုံသည်ပထမဆုံးလိုအပ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည် classified data များကိုသိမ်းဆည်းရန်ရိုးရှင်းသော Self-self-altration table ကိုအသုံးပြုသည်။

 
CREATE TABLE categories (
  id INT PRIMARY KEY AUTO_INCREMENT,
  parent_id INT NOT NULL,
  name VARCHAR(50) NOT NULL
);

စားပွဲ၌ ID တွင် ID သည် အမျိုးအစားတစ်ခုစီ၏ထူးခြားသောအမှတ်အသားဖြစ်သည်။ Parent_id သည် မိဘအဆင့်ကိုကိုယ်စားပြုသည်။ ထိပ်တန်းအဆင့်အတန်း၏ parent_id သည် 0 0 ကိုသတ်မှတ်ထားသည်

Classified ဒေတာမေးမြန်းမှု

သစ်ပင်ဖွဲ့စည်းပုံကိုမပြမီဒေတာဘေ့စ်မှပြည့်စုံသောခွဲခြားအချက်အလက်အချက်အလက်များကိုသင်ဖြည်ချရန်နှင့်အသိုက်ဆက်ဆံမှုများကိုပြန်လည်ပြုပြင်ခြင်း

 
function getCategories($parent_id = 0) {
  $categories = [];
  $query = "SELECT id, name FROM categories WHERE parent_id = :parent_id";
  $stmt = $pdo->prepare($query);
  $stmt->execute(['parent_id' => $parent_id]);

  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $categories[$row['id']] = [
      'id' => $row['id'],
      'name' => $row['name'],
      'children' => getCategories($row['id'])
    ];
  }
  return $categories;
}

အထက်ပါကုဒ်သည်ပြည့်စုံသောခွဲခြားထားသောအပင်ကိုပြန်လည်ပြုပြင်သည်။ ခွဲခြားသတ်မှတ်ခြင်းတစ်ခုစီသည်၎င်း၏အမျိုးအစားခွဲများနှင့်ပတ်သက်သောအချက်အလက်များပါ 0 င်သည်။

ခေါ်ဆိုမှုဥပမာ -

 
$categories = getCategories();

သစ်ပင်တည်ဆောက်ပုံ

ကွန်ယက်စာမျက်နှာတစ်ခုပေါ်တွင်ခွဲခြားထားသောအချက်အလက်များကိုရှင်းရှင်းလင်းလင်းဖော်ပြရန်ကျွန်ုပ်တို့သည် unorddered စာရင်း element များကို HTML ၏စာရင်းကိုသုံးနိုင်သည်။

 
function renderCategories($categories) {
  echo '<ul>';
  foreach ($categories as $category) {
    echo '<li>' . $category['name'] . '</li>';
    if (!empty($category['children'])) {
      echo '<ul>';
      renderCategories($category['children']);
      echo '</ul>';
    }
  }
  echo '</ul>';
}

renderCategories($categories);

ဤလုပ်ဆောင်ချက်သည် nested classification layer ကို Layer မှ Layer ဖြင့်ပြန်လည်ထူထောင်ရေးနည်းလမ်းဖြင့်ဖွင့်ပြီးရှင်းလင်းသောအဆင့်ဆင့်ဖွဲ့စည်းပုံနှင့် HTML format ဖြင့်ပြသထားသည်။

ကောက်ချက်

PHP ကို အသုံးပြု. PHP ကိုအသုံးပြုခြင်း၏အဓိကအချက်မှာ Infinite-Level အမျိုးအစားခွဲခြားသည့်သစ်ပင်အဆောက်အအုံများကိုအကောင်အထည်ဖော်ရန်အတွက်အဓိကအားဖြင့်အချက်အလက်များနှင့်ကျိုးကြောင်းဆီလျော်သောအချက်အလက်များကိုပြသရန်ဖြစ်သည်။ အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ်များသို့မဟုတ်ထုတ်ကုန်ခွဲခြားခြင်း၌ဖြစ်စေဤနည်းလမ်းသည်အလွန်လက်တွေ့ကျသည်။ ဤဆောင်းပါးတွင်ရှင်းပြချက်သည်သင့်အားအဆုံးမဲ့ခွဲခြားမှု၏အကောင်အထည်ဖော်မှုနည်းလမ်းများကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်လိုက်နာရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။