为什么我的 cfloop 在插入第一个 id 后停止?
Why my cfloop stop after inserting first id?
我创建了 cfloop,它通过我在循环上方创建的查询。在循环内部,我有另一个定义值的循环,然后使用插入语句定义 cfquery。在尝试将记录插入数据库之前,我测试了我的循环,一切看起来都很好。在我尝试应用它来插入我的记录后,我的插入语句在从我的 .这是我的代码示例:
<cfloop query="qryRecords">
<cfloop condition="TimeStart LTE meetingLength">
<cfset TimeEnd = dateAdd("n", arguments.meeting, TimeStart)>
<cfquery name="addRecords" datasource="test">
Insert Into(Date,Name,Location)
Values(<cfqueryparam cfsqltype="cf_sql_date" value="#arguments.date#">,
<cfqueryparam cfsqltype="cf_sql_char" value="#Name#">,
<cfqueryparam cfsqltype="cf_sql_time" value="#Location#">);
</cfquery>
<cfset TimeStart = dateAdd("n", arguments.meeting, TimeStart)>
</cfloop>
</cfloop>
在我的 qryRecords 中,我有 40 多条记录,我应该插入多条时间记录。我的插入只是为了第一条记录而停止。就像我上面提到的,我尝试使用以下代码在屏幕上输出:
<cfloop query="qryRecords">
<cfloop from="#test.Stime#" to="#test.Etime#" index="i" step="#CreateTimeSpan(0,0,test.meetingLeng,0)#">
<cfset TimeEnd = dateAdd("n", test.meetingLeng, i)>
<tr>
<td>(#ID#) #timeFormat(TimeStart, "hh:mm tt")# - #timeFormat(TimeEnd, "hh:mm tt")#</td>
</tr>
<cfset TimeStart = dateAdd("n", test.meetingLeng, i)>
</cfloop>
</cfloop>
我测试此代码后的输出如下所示:
(3) 08:30 AM - 08:40 AM
(3) 08:40 AM - 08:50 AM
(3) 08:50 AM - 09:00 AM
(3) 09:00 AM - 09:10 AM
(3) 09:10 AM - 09:20 AM
(3) 09:20 AM - 09:30 AM
(3) 09:30 AM - 09:40 AM
*(12) 09:40 AM - 08:40 AM
(12) 08:40 AM - 08:50 AM
(12) 08:50 AM - 09:00 AM
(12) 09:00 AM - 09:10 AM
(12) 09:10 AM - 09:20 AM
(12) 09:20 AM - 09:30 AM
(12) 09:30 AM - 09:40 AM
*(23) 09:40 AM - 08:40 AM
(23) 08:40 AM - 08:50 AM
.......... so on.
我看不出我的插入查询有什么问题,也看不出为什么在数据库中只插入一个记录序列后就停止了。如果有人能看到我在代码中哪里出错,请告诉我。
如果 qryRecords 不包含 TimeStart 列,则需要在 2 个开放 cfloop 标记(btwn <cfloop query="qryRecords">
和 <cfloop condition="TimeStart LTE meetingLength">
)之间重置 TimeStart。此外,cfloop 条件应该将 TimeStart 与最后一个时段的开始时间(而不是 meetingLength 分钟)进行比较。
我创建了 cfloop,它通过我在循环上方创建的查询。在循环内部,我有另一个定义值的循环,然后使用插入语句定义 cfquery。在尝试将记录插入数据库之前,我测试了我的循环,一切看起来都很好。在我尝试应用它来插入我的记录后,我的插入语句在从我的 .这是我的代码示例:
<cfloop query="qryRecords">
<cfloop condition="TimeStart LTE meetingLength">
<cfset TimeEnd = dateAdd("n", arguments.meeting, TimeStart)>
<cfquery name="addRecords" datasource="test">
Insert Into(Date,Name,Location)
Values(<cfqueryparam cfsqltype="cf_sql_date" value="#arguments.date#">,
<cfqueryparam cfsqltype="cf_sql_char" value="#Name#">,
<cfqueryparam cfsqltype="cf_sql_time" value="#Location#">);
</cfquery>
<cfset TimeStart = dateAdd("n", arguments.meeting, TimeStart)>
</cfloop>
</cfloop>
在我的 qryRecords 中,我有 40 多条记录,我应该插入多条时间记录。我的插入只是为了第一条记录而停止。就像我上面提到的,我尝试使用以下代码在屏幕上输出:
<cfloop query="qryRecords">
<cfloop from="#test.Stime#" to="#test.Etime#" index="i" step="#CreateTimeSpan(0,0,test.meetingLeng,0)#">
<cfset TimeEnd = dateAdd("n", test.meetingLeng, i)>
<tr>
<td>(#ID#) #timeFormat(TimeStart, "hh:mm tt")# - #timeFormat(TimeEnd, "hh:mm tt")#</td>
</tr>
<cfset TimeStart = dateAdd("n", test.meetingLeng, i)>
</cfloop>
</cfloop>
我测试此代码后的输出如下所示:
(3) 08:30 AM - 08:40 AM
(3) 08:40 AM - 08:50 AM
(3) 08:50 AM - 09:00 AM
(3) 09:00 AM - 09:10 AM
(3) 09:10 AM - 09:20 AM
(3) 09:20 AM - 09:30 AM
(3) 09:30 AM - 09:40 AM
*(12) 09:40 AM - 08:40 AM
(12) 08:40 AM - 08:50 AM
(12) 08:50 AM - 09:00 AM
(12) 09:00 AM - 09:10 AM
(12) 09:10 AM - 09:20 AM
(12) 09:20 AM - 09:30 AM
(12) 09:30 AM - 09:40 AM
*(23) 09:40 AM - 08:40 AM
(23) 08:40 AM - 08:50 AM
.......... so on.
我看不出我的插入查询有什么问题,也看不出为什么在数据库中只插入一个记录序列后就停止了。如果有人能看到我在代码中哪里出错,请告诉我。
如果 qryRecords 不包含 TimeStart 列,则需要在 2 个开放 cfloop 标记(btwn <cfloop query="qryRecords">
和 <cfloop condition="TimeStart LTE meetingLength">
)之间重置 TimeStart。此外,cfloop 条件应该将 TimeStart 与最后一个时段的开始时间(而不是 meetingLength 分钟)进行比较。