ในฐานข้อมูลฉันมี 5 คอลัมน์บวก id:
id, m1, m2, m3, m4, m5
ฉันกำลังเลือกจากตารางหนึ่งที่อาจมีตั้งแต่ 1 ถึง 5 แถวตามรหัส:
row,id,value
1, 1, 'A'
2, 1, 'B'
3, 1, 'C'
ฯลฯ สิ่งที่ฉันต้องทำคืออัปเดตคอลัมน์ m1, m2 และ m3 ในตารางผู้ใช้สำหรับ ID ผู้ใช้ 1 ที่มีค่า A, B และ C ฉันได้เริ่มต้นเส้นทางของบางสิ่งเช่นนี้ แต่กำลังปวดหัวกับวันจันทร์ที่จริงจังในวันอังคาร .
i=1;
cfloop (query=q) {
field = 'm' & i;
temp = invoke(myCFC,"updateUser",{ userid=q.id, field = q.value });
i++;
};
โดยที่ 'ฟิลด์' จะเป็น m1, m2, m3 วิธีหนึ่งคือใช้สวิตช์/เคสในการนับบันทึกและมีการเรียกใช้ 5 แบบที่แตกต่างกัน แต่ไม่แน่ใจว่าจะมีวิธีที่ดีกว่าโดยทางโปรแกรมหรือไม่
[แก้ไข] ใช้งานได้ แต่อาจไม่ใช่วิธีที่ดีที่สุด - ฉันมีเคสสำหรับ 1-5:
switch(qryM.recordCount) {
case "1":
temp = invoke(userCFC,"updateUser", {
id = qryM.rsm_userid,
m1_c = qryM["rsm_c"][1],
m1_m = qryM["rsm_m"][1]
});
break;
case "2":
temp = invoke(userCFC,"updateUser", {
id = qryM.rsm_userid,
m1_c = qryM["rsm_c"][1],
m1_m = qryM["rsm_m"][1],
m2_c = qryM["rsm_c"][2],
m2_m = qryM["rsm_m"][2]
});
break;
cfloop
คืออะไร? ไวยากรณ์นี้ไม่คุ้นเคยกับฉัน มันจะไม่เป็นfor
วนซ้ำใน CFScript และถ้าไม่ใช่ CFScript ก็จะเป็นแท็ก<cfloop>
- person Tomalak   schedule 30.10.2018invoke
ทุกครั้งที่วนซ้ำอย่างแน่นอน คุณสามารถnew
หรือcreateobject
ก่อนลูปของคุณ จากนั้นเพียงเรียกเมธอดของคุณในการวนซ้ำแต่ละครั้ง - person Shawn   schedule 31.10.2018INSERT
ing,UPDATE
ing หรือทั้งสองอย่าง? และนี่คือสำหรับid
เดี่ยวใช่ไหม คุณจะไม่มีid
s หลายอันใช่ไหม และถ้าUPDATE
ing หากฐานข้อมูลของคุณมีm4
อยู่แล้ว แต่คุณมีเพียง 3 แถว คุณจะnull
ออกm4
และUPDATE
1-3 หรือคุณจะปล่อยm4
ไว้เหมือนเดิมหรือไม่ - person Shawn   schedule 31.10.2018