यह लेख आपको सभी बच्चे और वंशज नोड्स को पुनः प्राप्त करने की एक विधि के माध्यम से मार्गदर्शन करेगा एक निर्दिष्ट अभिभावक के लिए 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