2012-06-21 46 views
-5

我在家里操纵php或javascript中的数组和对象的操作非常多,而且在使用coldfusion之后还没做任何工作。将mysql查询与sql查询进行比较

我有一个查询从MySQL中提取数据。我想存储结果列表或数组(或更简单的方法)

WHILE循环从生成html输出的msql的第二个查询我需要看看是否有一个值包含在先前的mysql数组或列表中。

已经尝试玩各种各样的cf数组/列表方法,真的不知道什么最好的办法是解决以下if。 CF版本是9

<cfquery datasource="Mysql" name="premium_submitters"> 
    SELECT submitter_id from table 
</cfquery> 
<!--- Need loop to store to array or list??---> 

<cfquery datasource="Sql" name="main_data"> 
    SELECT * from table 
</cfquery> 

<cfoutput query="main_data"> 
    <cfif #submiiter_id# <!---is in Mysql array/list return boolean---> > 

    </cfif> 
</cfoutput> 

回答

4

使用ValueList获得查询一个列的值到列表中。

<cfquery datasource="Mysql" name="premium_submitters"> 
    SELECT submitter_id from table 
</cfquery> 

<cfset submittersList = ValueList(premium_submitters.submitter_id)> 

<cfquery datasource="Sql" name="main_data"> 
    SELECT * from table 
</cfquery> 

<cfoutput query="main_data"> 
    <cfif ListFind(submittersList, main_data.submitter_id) gt 0> 
     <!--- is in list, do whatever ---> 
    </cfif> 
</cfoutput> 
+0

这也是我最初的尝试之一。我得到以下错误'ValueList()函数有一个无效的参数:premium_submitters.submitter_id。 ' – charlietfl

+0

您是否已经在premium_submitters查询中完成'cfdump'以确保它已填充? –

+0

是的,我刚刚解决了这个问题,我没有注意到这两个字段的拼写有所不同,然后当试图找出使用哪种列表方法时,我忽略了拼写错误 – charlietfl