"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP का उपयोग करके MySQL में माता-पिता के लिए सभी बच्चे और वंशज नोड्स कैसे प्राप्त करें?

PHP का उपयोग करके MySQL में माता-पिता के लिए सभी बच्चे और वंशज नोड्स कैसे प्राप्त करें?

2024-11-09 को प्रकाशित
ब्राउज़ करें:541

How to Get All Child and Descendant Nodes for a Parent in MySQL Using PHP?

MySQL क्वेरी परिणामों के साथ PHP का उपयोग करके माता-पिता के अंतर्गत सभी बच्चे, पोते, आदि नोड्स प्राप्त करें

यह लेख आपको सभी बच्चे और वंशज नोड्स को पुनः प्राप्त करने की एक विधि के माध्यम से मार्गदर्शन करेगा एक निर्दिष्ट अभिभावक के लिए MySQL क्वेरी परिणामों के साथ PHP का उपयोग करना। यह तकनीक वृक्ष संरचना के बहुआयामी सरणी के निर्माण की आवश्यकता को समाप्त करती है और आपको सभी नोड्स को सीधे प्राप्त करने में सक्षम बनाती है।

एक आसन्न सूची के रूप में व्यवस्थित एक MySQL तालिका पर विचार करें, जहां पदानुक्रम डेटा को आईडी, नाम के लिए कॉलम के साथ दर्शाया जाता है , और अभिभावक_आईडी। निम्नलिखित SQL क्वेरी इस तालिका से सभी पंक्तियों को एक सहयोगी सरणी में पुनः प्राप्त कर सकती है:

$r = mysql_query("SELECT * FROM test ");
$data = array();
while($row = mysql_fetch_assoc($r)) {
  $data[] = $row;
}

आइए मान लें कि हम इस सरणी को आईडी 3 वाले पेरेंट के अंतर्गत नोड्स के लिए फ़िल्टर करना चाहते हैं, जिसमें पेरेंट भी शामिल है। यह कस्टम फ़ेच_रिकर्सिव फ़ंक्शन इसे पूरा कर सकता है:

function fetch_recursive($src_arr, $currentid, $parentfound = false, $cats = array()) {
  foreach($src_arr as $row) {
    if((!$parentfound && $row['id'] == $currentid) || $row['parent_id'] == $currentid) {
      $rowdata = array();
      foreach($row as $k => $v)
        $rowdata[$k] = $v;
      $cats[] = $rowdata;
      if($row['parent_id'] == $currentid)
        $cats = array_merge($cats, fetch_recursive($src_arr, $row['id'], true));
    }
  }
  return $cats;
}

इस फ़ंक्शन का उपयोग करने के लिए, क्वेरी से प्राप्त $ डेटा सरणी को पहले तर्क के रूप में पास करें और उस पैरेंट की आईडी को दूसरे तर्क के रूप में पास करें जिसके लिए आप चाइल्ड नोड्स को पुनः प्राप्त करना चाहते हैं:

$list = fetch_recursive($data, 3);

$सूची में अब सभी चाइल्ड नोड्स और पैरेंट नोड (आईडी 3) के साथ एक सहयोगी सरणी शामिल होगी।

यह समाधान कुशलतापूर्वक सभी को पुनर्प्राप्त करता है बहुआयामी वृक्ष संरचना निर्माण की आवश्यकता के बिना एक निर्दिष्ट माता-पिता के लिए बच्चे और वंशज नोड्स।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3