В базе данных у меня есть 5 столбцов плюс идентификатор:
id, m1, m2, m3, m4, m5
Я выбираю из одной таблицы, которая может иметь от 1 до 5 строк в зависимости от идентификатора:
row,id,value
1, 1, 'A'
2, 1, 'B'
3, 1, 'C'
и т. д. Что мне нужно сделать, так это обновить столбцы m1, m2 и m3 в пользовательской таблице для идентификатора пользователя 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
? И еслиUPDATE
ing, если в вашей базе данных уже естьm4
, но у вас только 3 строки, вы будетеnull
изm4
иUPDATE
1-3, или вы оставитеm4
как есть? - person Shawn   schedule 31.10.2018