php - Ordering an Array with weights? -
समस्या
अभी मुझे इसे बनाना है:
मेरे डेटाबेस में; अपने पसंदीदा 'वेट' प्रविष्टि के रूप में प्रत्येक पसंदीदा।
अभी के रूप में यह '10' के लिए चूक है
मान लीजिए मेरे पास पसंदीदा सरणी है, वज़न इस तरह से चलती है तदनुसार:
- 1
- 2
- 3
- 4
> अगर मैं '2' पर 'डाउन' तीर दबाकर रखता हूं तो मुझे उसके वजन में 1 जोड़ना होगा।
इसमें क्या परिणाम होगा:
- 1 < 3
- 3
- 4
लेकिन मैं पसंदीदा '2' पसंदीदा के साथ '3 के वजन स्विच करना चाहता हूँ।
मुझे यह सुनिश्चित करने के लिए एक तरीका है कि जब प्रत्येक आइटम के लिए वज़न के रूप में वे निहित हों 1 से जोड़कर या घटाए जाने से बहुत अधिक समस्या हो सकती है।उम्मीद है मैंने इसे ठीक से समझाया।
कोड
डेटाबेस को लेखन <पूर्व>
/ * * डाटाबेस को डेटा लिखें * / फ़ंक्शन f25_favorites_form_submit ($ फ़ॉर्म, और $ form_state) {वैश्विक $ उपयोगकर्ता; $ ListOfPaths = f25_favorites_listOfPaths (); $ चयनित = $ form_state ['values'] ['पथ']; $ डेटा = सरणी ('यूआईडी' = & gt; $ उपयोगकर्ता- & gt; यूआईडी, 'पथ' = & gt; $ चयनित, 'शीर्षक' = & gt; $ सूचीऑफ़पेथ [$ चयनित] ['# शीर्षक'], 'वजन' = & Gt; 10, 'टाइमस्टैम्प' = & gt; समय (),); Drupal_write_record (f25_ पसंदीदा, $ डेटा); }
क्वेरी
/ * * विशिष्ट उपयोगकर्ता का पसंदीदा डेटा प्राप्त करना / फ़ंक्शन f25_favorites_user_favorites () {वैश्विक $ उपयोगकर्ता; अगर ($ उपयोगकर्ता- & gt; यूआईडी & gt; 0) {$ userid = $ user- & gt; यूआईडी; $ User_paths = db_query ("SELECT * FROM f25 से पसंदीदा foo WHERE foo.uid = '% s' आदेश द्वारा foo.weight DESC", $ userid); $ Pathlist = एरे (); जबकि ($ डेटा = db_fetch_object ($ user_paths)) {$ pathlist [] = $ डेटा; } $ पथ सूची लौटा; }}
मुझे इस समस्या का कैसे सामना करना चाहिए?
अगर आपके सभी पसंदीदाों को अलग ढंग से भारित किया जाता है, आप वजन घटाने पर "डाउन डाउन" या फिर रिवर्स के साथ "ऊपर उठ" वाले एक के
weight फील्ड को स्वैप कर सकते हैं। आपको हालांकि कोड पता करना होगा
Comments
Post a Comment