आपको अपेक्षित परिणाम मिल रहा है। यदि आपके पास परिणाम सेट है a,b,c,d
, आप a
. से प्रारंभ कर रहे हैं जो एक मूल श्रेणी है, इसलिए यह सेट की शुरुआत में वापस आती है, और a,b,c,d
के माध्यम से पुनरावृत्त होती है फिर से उपश्रेणियों के रूप में। अब आप सेट के अंत में हैं इसलिए दोनों लूप बाहर निकल जाएंगे क्योंकि कोई और डेटा नहीं है।
आप शायद क्या करना चाहते हैं, पहले सभी डेटा को एक PHP सरणी में पढ़ना है, फिर उस पर पुनरावृति करना और किसी प्रकार की वृक्ष संरचना का निर्माण करना है। आप सीधे mysql_fetch लूप में अपनी ट्री संरचना बनाने में भी सक्षम हो सकते हैं।
आप जो हासिल करने की कोशिश कर रहे हैं उसके आधार पर, आपके डेटा को स्टोर करने के बेहतर तरीके भी हैं। एसक्यूएल में पेड़ और पदानुक्रमित डेटा को स्टोर करने के तरीके पर पढ़ने लायक है। नेस्टेड सेट शायद वही हैं जो आप चाहते हैं।
एक और बात:mysql_fetch_array
का उपयोग न करें , mysql_fetch_assoc
. का उपयोग करें बजाय। अन्यथा आप संख्यात्मक और सहयोगी कुंजी और एक पंक्ति सरणी के साथ समाप्त होते हैं जिसमें डेटा की मात्रा दोगुनी होनी चाहिए।