से कम रिकॉर्ड वाले Nested cfloops मैं बहुत उत्सुक हूं कि यह क्यों हो रहा है। मैंने इसमें दो बार भाग लिया है, और गुगलिंग/सोइंग के एक टन के बाद, मुझे कोई कारण नहीं मिला है जिसे मैं वास्तव में समझता हूं। यह का सार:बाहरी लूप कारण "रेंज से बाहर सरणी सूचकांक" त्रुटि
क्वेरी 1: selectContent (6 रिकॉर्ड, कोई रिक्त स्थान/nulls आदि)
क्वेरी 2: selectPricing (5 रिकॉर्ड, कोई रिक्त स्थान/nulls आदि)
आउटपुट:
सीमा से बाहर सरणी सूचकांक::<cfloop query="selectContent">
<section>
#selectContent.h2#
<cfif selectContent.id eq 3>
<cfloop query="selectPricing" group="groupCol">
<table class="pricing">
<thead>
<tr>
<th>#description#</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<cfloop>
<tr>
<td>#selectPricing.description#</td>
<td>#selectPricing.price#</td>
</tr>
</cfloop>
</tbody>
</table>
</cfloop>
</cfif>
#selectContent.content#
</section>
</cfloop>
यह निम्न त्रुटि दे देंगे 5
त्रुटि केवल तब होता है जब दूसरे क्ष यूरी के पहले की तुलना में कम रिकॉर्ड हैं। अनिवार्य रूप से ऐसा लगता है कि पहले सीएफएलओप उस दूसरे से लूप पुनरावृत्ति को लेता है और इससे समस्या उत्पन्न होती है, लेकिन केवल तभी यदि आपके पास उस तीसरे समूह वाले सीएफएलओओप हैं। संपूर्ण आंतरिक सीएफएलओओपी चलता है, जैसा कि स्रोत में है।
मैं इस को हल करने के लिए दो तरीके के साथ आ गए हैं:
- cfoutput/समूह के साथ ऐसा करते हैं, लेकिन के रूप में यह पेज के अन्य भागों से cfoutputs के समापन के बहुत सारे मतलब यह है कि अपेक्षाकृत बदसूरत है।
- यदि वर्तमान पंक्ति रिकॉर्डकाउंट से मेल खाती है तो उस तीसरे cfloop पर एक cfbreak चिपकाएं।
तो, दो सवाल:
क्यों यह और भी हो रहा है?
क्या मुझे यहां एक पूरी तरह से अलग दृष्टिकोण का उपयोग करना चाहिए (तथ्य यह है कि गुगलिंग/सोइंग इस मुद्दे के साथ दूसरों को नहीं ढूंढ रहा है निश्चित रूप से ऐसा लगता है कि ...)?
संपादित मैं एक Coldfusion नीचे एडम कैमरून की प्रतिक्रिया के आधार पर बग के रूप में यह मामला दर्ज किया है। Bug #3820049
आपके पास पर यह उठाना चाहिए आंतरिक cfloop टैग पर कोई विशेषता नहीं है, वह वैध वाक्यविन्यास है? – Busches
हां। यह समूहित परिणामों के माध्यम से loops, यानी अगर आपकी क्वेरी लिंग द्वारा समूहीकृत किया गया था, जो लिंग द्वारा सभी नाम वापस कर देगा (देखें http://www.bennadel.com/blog/2359-coldfusion-10-using-the-group-attribute -साथ-cfloop करने वाली समूह-प्रश्न-rows.htm)। यह काम करता है यदि आपके पास उस पहले cfloop (समूहबद्ध से पहले) में नहीं है।इसे मूल रूप से cfoutput समूह के समान काम करना चाहिए, जो कि एडम एक वर्कअराउंड के रूप में नीचे उपयोग करता है, और आप वहां आवश्यक रूप से उसी वाक्यविन्यास को देख सकते हैं। – sckd
* क्या मुझे यहां एक पूरी तरह से अलग दृष्टिकोण का उपयोग करना चाहिए * मुझे उत्सुकता है कि जॉइन के साथ एक प्रश्न के विपरीत कई प्रश्न और नेस्टेड लूप क्यों हैं? – Leigh