2011-01-09 11 views
6

मेरे पास एक बड़ा डेटाबेस है जो मैं एक बड़े डेटाबेस से खींचता हूं:क्या आप PHP में एक MySQL परिणाम सेट का पुन: उपयोग कर सकते हैं?

$result = mysql_query($sql); 

मैं इस रिकॉर्डसेट के माध्यम से डेटा के विशिष्ट बिट्स खींचने और while($row = mysql_fetch_array($result)) का उपयोग करके औसत प्राप्त करने के लिए लूप करता हूं। बाद में पृष्ठ में, मैं फिर से उसी रिकॉर्डसेट के माध्यम से लूप करना चाहता हूं और सब कुछ आउटपुट करना चाहता हूं - लेकिन क्योंकि मैंने पहले रिकॉर्डसेट का उपयोग किया था, मेरा दूसरा पाश कुछ भी नहीं देता है।

मैंने आखिरकार एक दूसरे समान रिकॉर्डसेट ($result2 = mysql_query($sql);) के माध्यम से लूप करके इसे चारों ओर हैक किया, लेकिन मुझे दो बार एक ही SQL कॉल करने से नफरत है। किसी भी तरह से मैं एक ही डेटासेट के माध्यम से कई बार लूप कर सकते हैं?

+0

क्या आप अपने प्रश्नों को एक में विलय कर सकते हैं? ये प्रश्न क्या हैं? – CrazyMax

+0

क्यों सभी पंक्तियों को एक सरणी में संग्रहीत नहीं करते हैं और जहां भी आप चाहें इसका उपयोग करते हैं? – zerkms

+0

यह भी हैक हो सकता है लेकिन आप इसे आजमा सकते हैं: "$ result1 = $ result = mysql_query ($ sql)"। –

उत्तर

20

उपयोग प्राप्त कर सकते हैं का उपयोग करना:

mysql_data_seek($result, 0); 

आप के बाद से यह पहले से ही बफ़र कर रहा है, यह "मुक्त" मिलता है।

एक अलग नोट के रूप में, आप स्पष्ट रूप से mysql_unbuffered_query के साथ एक unbuffered क्वेरी कर सकते हैं।

+0

मैट, यह एक आकर्षण की तरह काम किया! आपने मुझे अनचाहे लोड समय का बहुत बचाया, धन्यवाद। – MarathonStudios

+0

@Col, उसे इसे सरणी में क्यों कॉपी करना चाहिए जब यह ** पहले से ही बफर किया गया हो **? यदि आप नीचे मतदान करने जा रहे हैं, तो उत्तर के साथ कुछ गलत होना चाहिए। "आप इसके बजाय कुछ अनावश्यक प्रतिलिपि कर सकते हैं" योग्य नहीं है। –

+0

@ कोल, आप बहुत सारी धारणाएं कर रहे हैं। आप कैसे जानते हैं कि वह इसे सभी को एक सरणी में कॉपी कर रहा है? उन्होंने कहा कि उन्हें केवल "विशिष्ट बिट्स" की आवश्यकता है। क्या आप अभी भी सभी कॉलम कॉपी करेंगे यदि कोई बीएलओबी था? आप यह भी मान रहे हैं कि जब वह औसत कहता है तो उसका मतलब सीधे अंकगणितीय मतलब है। यह भारित किया जा सकता है। और यहां तक ​​कि यदि आप सही हैं कि वह एसक्यूएल के 'एवीजी' का उपयोग कर सकता है, जो सवाल का जवाब नहीं देता है। –

0

एसक्यूएल Cursors आप इस दृष्टिकोण

+1

वास्तव में कर्सर ओपी के बारे में पूछे जाने वाले नहीं हैं। – zerkms

संबंधित मुद्दे

 संबंधित मुद्दे