出于演示目的,假设我有以下查询:
std::string
在显示侧,可以对LI进行排序,并将它们的相应位置存储在相应的表列中。
在输出中,我正在遍历数据,需要使用SELECT a_label, aID, b_label, bID, c_label, cID, d_label, dID, orderByA, orderByB, orderByC
FROM table
ORDER BY orderByA, orderByB, orderByC
,然后一个子组正在使用<cfoutput query="qryName" group="aID">
,另一个子组正在使用<cfoutput group="bID">
,依此类推。 / p>
我的问题是我无法弄清楚查询的外观,以便正确地对我的输出进行分组。我需要对我的SQL查询进行分组还是将其保留在cfm代码中?然后顺序如何呢?
我想问的是,您怎么知道何时分组属于查询与代码?
已使用某些CFM代码更新
<cfoutput group="cID">
用户可以将项目从一个部分拖到另一部分,但前提是这些部分是同一级别。例如,<cfoutput query="#aw#" group="cID">
<ul class="listItem pItem">
<cfoutput group="pID">
<li class="listItem pTitle" data-cid="#aw.cID#" data-pid="#aw.pID#" data-wid="#aw.wID#">
<i class="glyphicon glyphicon-chevron-right rotate wToggle"></i> <input type="checkbox" name="p" class=""> #aw.pLabel#
<ul class="listItem wItem hide">
<cfoutput group="wID">
<li class="listItem wTitle" id="w_#aw.cID#_#aw.pID#_#aw.wid#_#aw.woaid#">
<i class="glyphicon glyphicon-chevron-right rotate dToggle font-blue-madison"></i> <input type="checkbox" name="w" class=""> #aw.wLabel#
<ul class="listItem dItem hide">
<cfoutput>
<li class="listItem dTitle" id="d_#aw.cID#_#aw.pID#_#aw.wID#_#aw.dID#_#aw.woaid#">
<input type="checkbox" name="d" class="child"> #aw.dID#
</li>
</cfoutput>
</ul>
</li>
</cfoutput>
</ul>
</li>
</cfoutput>
</ul>
</cfoutput>
只能移动到具有dItem
的另一个容器中。同样,dItem
只能移动到另一个wItem
,依此类推。
我正在处理sql查询,并将更新此问题。我一次是从一个级别开始,而不是同时从整个查询开始(使大小如此)。
更新
我想我发现了问题,数据不好。一些项目在其各自的wItem
中没有值,因此分组的项目在子组中的顺序不正确。新添加的项目的默认值为orderBy*
,但我认为需要使用其他值。 NULL
列是否有最佳做法的默认值?
UPDATE ii 我发现了这个问题Insert and set value with max()+1 problems,可以在添加新项目时实施。这样,它就会出现在列表的末尾。
答案 0 :(得分:1)
知道了!我的<cfoutput...group=...
需要与GROUP BY
子句中相同的列(和顺序)进行匹配/分组。一旦使它们匹配,我的输出就会与我看到的数据库相匹配。
更新的SQL
SELECT a_label, aID, b_label, bID, c_label, cID, d_label, dID, orderByA, orderByB, orderByC
FROM table
ORDER BY cID, orderByA, orderByB, orderByC
orderByC 只是一个很好的衡量标准,最后一个<cfoutput>
标签不需要分组。
更新了CFM(删除了不必要的代码以突出显示解决方案
<cfoutput query="#aw#" group="cID">
<ul class="listItem pItem">
<cfoutput group="orderByA">
<li class="listItem pTitle">
<i class="glyphicon glyphicon-chevron-right"></i> #aw.pLabel#
<ul class="listItem wItem hide">
<cfoutput group="orderByB">
<li class="listItem wTitle">
<i class="glyphicon glyphicon-chevron-right"></i>#aw.wLabel#
<ul class="listItem dItem hide">
<cfoutput>
<li class="listItem dTitle">
#aw.dID#
</li>
</cfoutput>
</ul>
</li>
</cfoutput>
</ul>
</li>
</cfoutput>
</ul>