我创建了以下页面,显示哪些经理当月已累积时间。 - 首先,我需要显示记录以供审核, - 然后选中该框,点击“提交”并将它们添加到数据库中。 - 如果需要,所有内容都来自同一页面或操作页面。
我见过使用 CFLOOP 插入多条记录的示例,但不确定如何在我的页面中实现,因为我显示的是“不同数量”的记录?
<!--- Create the Manager Monthly Accruals (Mgt) dataset --->
<cfquery name="rsLeaveTimeManagerAccruals" datasource="care">
SELECT username AS ltUser, accrued AS ltHours
FROM tblusers
WHERE clr_accrual = '1' AND hiredate IS NOT NULL
</cfquery>
然后我在页面上显示结果,如下所示:
<form action="" method="post">
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td><input type="checkbox" name="checkbox" id="checkbox" title="Check this box and click Submit button to add Accruals to database." /></td>
<td>ltUser</td>
<td>ltHours</td>
</tr>
<cfoutput query="rsLeaveTimeManagerAccruals">
<tr>
<td>#rsLeaveTimeManagerAccruals.ltUser#</td>
<td>#rsLeaveTimeManagerAccruals.ltHours#</td>
</tr>
</cfoutput>
</table>
</form>
<input type="submit" name="Submit" id="Submit" value="Submit" title="Check box & Submit to insert the Hours listed above for each User."/>
这是我的页面的样子:(只是一个 HTML 表格,动态显示要在插入之前查看的记录)
问题:如何将 (ltUser & ltHours) 的“x”个查询结果插入到 tblLeaveTime WHERE "checkbox"= 1 中?
最佳答案
最简单的选项是使复选框值成为唯一记录 ID。我还建议为该复选框指定一个更具描述性的名称。
<input type="checkbox" name="userIDList" value="#ID#" ...>
所选 ID 将作为逗号分隔列表传递到操作页面。然后,您可以使用该列表通过 INSERT/SELECT 将选定的记录插入到另一个表中。 (显然添加验证以确保首先选择某些内容。)
INSERT INTO OtherTable ( UserID, AccruedHours )
SELECT ID, Accrued
FROM tblUsers
WHERE ID IN
(
<cfqueryparam value="#FORM.userIDList#" cfsqltype="cf_sql_integer" list="true">
)
关于mysql - 在页面上显示结果,然后使用 ColdFusion 将多条记录插入 MySQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41858844/