2015-12-08 5 views
2

Я создал cfloop, который проходит через запрос, который я создал выше цикла. Внутри цикла у меня есть еще один цикл, который определяет значения, а затем cfquery с инструкцией insert. Я тестировал свои циклы, прежде чем попытался вставить мои записи в базу данных, и все выглядело хорошо. После того, как я попытался применить это, чтобы вставить мои записи, мой оператор insert заканчивается после вставки первых записей из моего. Вот пример моего кода:Почему мой cfloop останавливается после вставки первого идентификатора?

<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. 

Я не вижу ничего плохого в том, что я Вставьте запрос и почему это останавливается после вставки только одной последовательности записей в db. Если кто-нибудь может увидеть, где я ошибаюсь в своем коде, пожалуйста, дайте мне знать.

+0

Введенный вами код пытается вставить те же значения в таблицу каждый раз через цикл. Кроме того, код, который вы используете для вывода материала, имеет другую логику, чем то, что нужно для вставки записей. –

+0

Да, я хочу вставить одинаковые значения несколько раз для разных ID. Эта логика по-прежнему должна делать то же, что и для выходного кода. –

+0

Прежде всего, как вы получаете результат выше: '(# Id #) - #timeFormat (i," hh: mm tt ") # - #timeFormat (i," hh: mm tt ") #'? ? – Beginner

ответ

2

Если qryRecords не содержит столбец TimeStart, то TimeStart необходимо сбросить между двумя открывающимися тегами cfloop (btwn <cfloop query="qryRecords"> и <cfloop condition="TimeStart LTE meetingLength">). Кроме того, условие cfloop должно сравнивать TimeStart с временем начала последнего интервала (а не минуты встречи).

Смежные вопросы