mysql - SQL updating tables recursively with PHP -
मेरे पास वार्तालाप तालिका और वार्तालाप उत्तर तालिका है:
वार्तालाप तालिका:
+ ------- + ------- + -------- + | सीआईडी | U_1 | यूआईडी_2 | + ------- + ------- + -------- + | 1 | 8 | 3 | | 2 | 8 | 5 | | 3 | 8 | 2 | + ------- + ------- + -------- + वार्तालाप_रेली तालिका:
+ ------- + ------- + -------- + -------- + | Cr_id | उत्तर | Uid_fk | Cid_fk | + ------- + ------- + -------- + -------- + | 1 | | 8 | 1 | | 2 | | 8 | 11 | | 3 | | 8 | 11 | + ------- + ------- + -------- + -------- + मुझे होना चाहिए वार्तालाप तालिका को एक नया रिकार्ड के साथ अद्यतन करने में सक्षम है, अगर कोई नया उत्तर बनने पर मौजूद नहीं है, तो मुझे निम्न त्रुटि मिलती है:
एक बाल पंक्ति को जोड़ या अपडेट नहीं किया जा सकता: एक विदेशी कुंजी बाध्यता विफल (`_db`।` रूपांतरण / रिप्ली`, कॉन्स्ट्रैनट `वार्तालाप_रेली_आईबीएफबी_` विदेशी कुंजी (` cid_fk`) संदर्भ 'बातचीत' (`सीआईडी`)) कोई भी मदद बहुत सराहना की !! !!
संपादित करें मैंने नए कोनो क्वेरी बनाने में कोनो उत्तर क्वेरी डाल दी है, यह एक नया कन्वो बनाएगा लेकिन अभी भी सम्मिलित नहीं होगा उत्तर:
यदि (! खाली ($ _GET ['conv_id'])) {$ cid = mysql_real_escape_string ($ _GET ['conv_id']); प्रतिध्वनि $ cid; } अगर ($ user_one! = $ User_two) {// चेक कॉन्वो पहले से मौजूद नहीं है $ Q_exist = mysql_query ("चुनें c_id से mc_conversation WHERE (user_one = '$ user_one' और user_two = '$ user_two') या (user_one = '$ user_two' और user_two = '$ user_one')) या मर (mysql_error () ); यदि (mysql_num_rows ($ q_exist) == 0) {$ query = mysql_query ("एमसी_ रूपांतरण (उपयोगकर्ता_ऑन, यूज़र_टू, आईपी, टाइम) मूल्यों में शामिल करें ('$ user_one', '$ user_two', '$ ip', '$ time ') ") या मर (mysql_error ()); $ Q = mysql_query ("चुनें c_id से mc_conversation WHERE user_one = '$ user_one' ORDER द्वारा c_id DESC सीमा 1"); $ वी = mysql_fetch_array ($ क्यू); वापसी $ v ['c_id']; $ V_cid = $ v ['c_id']; // जवाब डालें। $ QR = mysql_query ("mc_conversation_reply (उपयोगकर्ता_id_fk, उत्तर, आईपी, समय, c_id_fk) में डालें VALUES ('$ uid', '$ answer', '$ ip', '$ time', '$ v_cid')) या मरने (mysql_error ()); // कॉन्वो पहले से मौजूद है } और {$ v = mysql_fetch_array ($ q_exist); वापसी $ v ['c_id']; // मूल्य डालें $ qR = mysql_query ("mc_conversation_reply (उपयोगकर्ता_id_fk, उत्तर, आईपी, समय, c_id_fk) में डालें VALUES ('$ uid', '$ answer', '$ ip', '$ time', '$ cid' ) ") या मर (mysql_error ()); प्रतिध्वनि $ cid; } }
आपने "वापसी" कहा है और लूप, जो फ़ंक्शन के निष्पादन को खत्म कर देगा, या यदि वैश्विक स्कोप से कहा जाता है, तो मौजूदा स्क्रिप्ट को निष्पादित करें। इसे आज़माएं:
// उत्तर डालें $ v = mysql_fetch_array ($ q_exist); $ QR = mysql_query ("mc_conversation_reply (उपयोगकर्ता_id_fk, उत्तर, आईपी, समय, c_id_fk) में डालें VALUES ('$ uid', '$ answer', '$ ip', '$ time', '$ cid')) या मरने (mysql_error ()); प्रतिध्वनि $ cid;
Comments
Post a Comment