मैं एक साधारण एसक्यूएल-क्वाईरी करता हूं:
SELECT `name`,` likes` `सामाजिक 'से` माह` =' 2015-01 '`डीसीईसी' के द्वारा आदेश /
फिर मैं एक" रैंक "जोड़ूंगा जो कि ++
< पूर्व> $ डेटा = सरणी (); $ रैंक = 0; जबकि ($ table_row = mysqli_fetch_assoc ($ तालिका)) {$ rank ++; $ डेटा [$ table_row ['name']] = $ table_row; $ डेटा [$ table_row ['name']] ['रैंक'] = $ रैंक; }
नतीजा निकला है और मैं दाईं तरफ क्या चाहता हूं
+ ------ + ------ + - ------ + + ------ + ------ + ------- + | रैंक | नाम | पसंद | | रैंक | नाम | पसंद | + ------ + ------ + ------- + + ------ + ------ + ------- + | 1 | फू | 123 | | 1 | फू | 123 | | 2 | Mfoo | 33 | | 2 | Mfoo | 33 | | 3 | एक्सफू | 33 | | 2 | एक्सफू | 33 | | 4 | Yfoo | 30 | | 4 | Yfoo | 30 | | 5 | ज़ूफ़ू | 29 | | 5 | ज़ूफ़ू | 29 | + ------ + ------ + ------- + + ------ + ------ + ------- +
मैं सही साइड टेबल कैसे प्राप्त करूं? प्रश्न में इसे हल करने का कोई तरीका क्या है?
संपादित करें:
वहां अब मैं खड़ा हूं:
चुनें IF (@ पसंद = s.likes, @rownum, @rownum: = @ rownum + 1) रैंक 2, एस.डोमेन_नाम, एस.लिंक्स, (@ लक्स: = s.likes) से डमी सामाजिक एस, (SELECT @rownum: = 0) x, (SELECT @likes: = 0) y जहां `महीना` = '2015-01' ऑर्डर के अनुसार क्रम
लेकिन रैंक 100% सही नहीं है क्योंकि मैं
के माध्यम से गिनती के बजाय रैंक को छोड़ना चाहता हूं; । मुझे सर्वोत्तम प्रथाओं के बारे में पता नहीं है, लेकिन मैं शायद खुद कुछ इस तरह से करूँगा:
$ data = array (); $ रैंक = 0; $ Lastlike = 1; $ वर्तमान जैसा = 0; $ I = 0; जबकि ($ table_row = mysqli_fetch_assoc ($ तालिका)) {$ name = $ table_row ['name']; $ वर्तमान जैसा = $ टेबल_रो ['पसंद']; अगर ($ वर्तमान की तरह = $ अंतिम नहीं) $ रैंक ++; $ डेटा [$ i] = सरणी ('रैंक' = & gt; $ रैंक, 'नाम' = & gt; $ name, 'likes' = & gt; $ currentlike); $ Lastlike = $ currentlike; $ I ++; }
मैंने इसे चेक नहीं किया है लेकिन आप इसका प्रयास करने के लिए स्वागत है और देखें।
No comments:
Post a Comment