2016-09-08 31 views
1

配列内の特定の日付を見つけるのに役立つ必要があります。Coldfusionで配列の日付を検索する

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

投稿されたコードを実行するとどうなりますか? –

+0

xmlで取得した文字列はそのまま日付に変換できません。あなた自身でそれを解析したいかもしれません。私はあなたの問題がここで取り上げられたと信じていますhttp://stackoverflow.com/questions/20088433/coldfusion-date-conversion-2013-11-15t061157-87-is-an-invalid-date-or-time-s –

+0

質問を無視して、あなたの他の質問のいくつかの進化、あなたはステップを取り戻すことをお勧めします。最初にa)どのフィールドをあなたのアプリケーションで使用するのかを指定します(日付、修飾子、数字、...)。b)*どのフィールドにアクセスするのでしょうか?たとえば、アプリは検索結果を日付(唯一)、番号などで検索します。これらの回答は、結果を最適に保存/キャッシュして解析する方法を決定するのに役立ちます。 – Leigh

答えて

-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#" /> 
+2

説明のないダウンワードは、役に立たず、覚えやすく、臆病です。 –