需要帮助在数组中查找特定日期。
我有一个从JSON文件填充的数组。想要一个表单输入日期然后返回数据,如果它在数组中。
这是我到目前为止所尝试过的。
<!---Form and submit button to enter date--->
<p>
<cfform name="pickdate" id="pickdate" >
<cfinput required="yes" name="datepicker" type="datefield" id="datepicker" validate="USDATE">
<cfinput type="submit" name="insertpbnum" value="Enter" id="submit">
</cfform>
</p>
<br>
<br>
<!---Get lotto numbers from JSON file--->
<cfhttp url="https://data.ny.gov/api/views/d6yy-54nr/rows.json?accessType=DOWNLOAD" method="get" result="httpResp" timeout="120">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
</cfhttp>
<cfset pbdata=deserializeJSON(httpResp.filecontent)>
<cfoutput>
<!---loop thru JSON file to grab lotto numbers and dates--->
<cfloop from="1" to="#arrayLen(pbdata.data)#" index="i">
<!---change xml date-time format to Coldfusion formate--->
#arrayFind(datetimeformat(Parsedatetime(pbdata.data[i][9]),"MM-DD-YYYY","datepicker"))#
<!---#i#: #Parsedatetime(pbdata.data[i][9])# : #pbdata.data[i][10]#---><br />
</cfloop>
</cfoutput>
我正是以正确的方式来做这件事。或者将数组放入数据库更好?
由于
答案 0 :(得分:-1)
这是一种不同的方法,但希望能够完成您的尝试。此解决方案将数据抛出到查询中,然后执行查询查询(QOQ)以检查日期。
<cfhttp url="https://data.ny.gov/api/views/d6yy-54nr/rows.json?accessType=DOWNLOAD" method="get" result="httpResp" timeout="120">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
</cfhttp>
<cfset pbdata=deserializeJSON(httpResp.filecontent)>
<!--- Get list of column names --->
<cfset columnList = "" />
<cfloop from="1" to="11" index="i">
<cfset columnList = listAppend(columnList, replace(pbdata.meta.view.columns[i].name, " ", "", "All")) />
</cfloop>
<!--- Populate data into query --->
<cfset qryData = queryNew(columnList) />
<cfset dataRowCount = arrayLen(pbdata.data) />
<cfset queryAddRow(qryData, dataRowCount) />
<cfloop from="1" to="#dataRowCount#" index="i">
<cfloop from="1" to="#arrayLen(pbdata.data[i])#" index="j">
<cfif j EQ 11 AND pbdata.data[i][j] EQ "null">
<!--- default multiplier field to 0 if null --->
<cfset querySetCell(qryData, listGetAt(columnList, j), 0, i) />
<cfelse>
<cfset querySetCell(qryData, listGetAt(columnList, j), pbdata.data[i][j], i) />
</cfif>
</cfloop>
</cfloop>
<!--- Query the recordset --->
<cfquery name="rs" dbtype="query">
SELECT *
FROM qryData
WHERE DrawDate = '#dateFormat("5/26/2010", "YYYY-MM-DD")#T00:00:00'
</cfquery>
<cfdump var="#rs#" />