2010-05-09 5 views
7

कुछ भाषाओं में (कोल्डफ्यूजन दिमाग में आता है), आप पिछली क्वेरी से परिणाम सेट पर एक क्वेरी चला सकते हैं। क्या php में ऐसा कुछ करना संभव है (MySQL डेटाबेस के रूप में)?क्या php पिछली क्वेरी से परिणामों की क्वेरी कर सकता है?

$rs1 = do_query("SELECT * FROM animals WHERE type = 'fish'"); 
$rs2 = do_query("SELECT * FROM rs1 WHERE name = 'trout'"); 
+0

की तरह कुछ कर सकते हैं? – Sylvain

उत्तर

6

वहाँ PHP के लिए इस तरह कोई MySQL समारोह है के लिए LINQ का उपयोग कर सकते, लेकिन वहाँ एक और अधिक उन्नत substitute इसके लिए है।

संपादित करें: आप में से उन लोगों के लिए जो प्रश्नों की कोई प्रश्न नहीं जानते हैं, यह बिल्कुल सही है और कुछ लोग इसे पसंद करते हैं। एक एंड ऑपरेटर का उपयोग करना **** एक ही बात नहीं है **** अगर मुझे अपनी स्क्रिप्ट के एक हिस्से के लिए उपयोगकर्ता नाम = 'एनिम्यूसन' परिणाम चाहिए और फिर उस क्वेरी से सभी परिणाम चाहते हैं जहां स्थिति = '1', मेरे लिए एक और ऑपरेटर का उपयोग करके एक और क्वेरी चलाने के लिए तार्किक नहीं है, तो यह है PHP में पिछले परिणामों के माध्यम से लूप के लिए और अधिक तार्किक। टिप्पणियों को पढ़ने के बिना चीजों को ऊपर उठाना बंद करो, क्योंकि उन्हें पहली जगह क्यों नहीं उड़ाया गया था, यह सिर्फ आलसी है। यदि आपके पास कोई सुराग नहीं है कि किस बारे में बात की जा रही है, तो आपको पहले स्थान पर ऊपर या नीचे नहीं जाना चाहिए।

2

ठीक है, आप डाटाबेस को छुए बिना ऐसा करना चाहते हो सकता है::

मैं इन सबसे छुटकारा क्या करना चाहते हैं

while($t = mysql_fetch_array($rs1)){ 
    if($t[name] == 'trout'){ 
     echo 'This is the one we\'re looking for!'; 
     break; 
    } 
} 
1

पीएचपी में, यह बहुत अक्षम हो जाएगा। आपको प्रत्येक पंक्ति के माध्यम से लूप करना होगा और जांचें कि nametrout था। हालांकि, क्या कोई कारण नहीं है कि आप

SELECT * FROM `animals` WHERE `type` = 'fish' AND `name` = 'trout' 

SQL में नहीं कर सकते हैं? यह बहुत तेज होगा।

+0

मुझे नहीं लगता कि आप प्रश्नों की एक क्वेरी के उद्देश्य को समझते हैं। – animuson

+0

PHP की स्मृति में इसकी खोज नहीं करेगा फिर से एक बड़े डीबी पर हमला करने से तेज होगा? हो सकता है मैं गलत हूं। – Robus

+0

@ रोबस: शायद। यदि आपको शुरुआती मछली पूछताछ के साथ 1,000 में से 100 परिणाम मिलते हैं, तो अतिरिक्त क्वेरी के साथ 1,000 परिणामों के माध्यम से फिर से स्थानांतरित करने के बजाय PHP में खोजना बेहतर होगा। – animuson

0

और कीवर्ड का उपयोग करें?

"SELECT * FROM animals WHERE type = 'fish' and name='trout'" 

इसके अलावा, आप php http://phplinq.codeplex.com/

+0

क्या होगा यदि आप मछली की क्वेरी के परिणाम चाहते हैं और फिर परिणाम प्लस ट्राउट? फिर आपको दो अलग-अलग प्रश्नों को चलाने होंगे ... – animuson

1

तुम भी नहीं वास्तव में के बजाय किसी SQL दृश्य का उपयोग कर के बारे में अपने प्रश्न का उत्तर देने के लिए, लेकिन क्या

select morestuff from (select stuff from table where a = b) where c = d; 
+1

यह एक और अधिक जटिल और एक और ऑपरेटर का उपयोग करने का धीमा तरीका है। – animuson

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