我们有一个三面板显示屏,其中Panel One显示国家列表,Panel Two显示组织列表,Panel Panel显示飞机列表。如果您单击某个国家/地区,则该组织和飞机都会按该国家/地区进行过滤,并使用每个国家/地区的ID。
这一切都运作正常,但飞机列表来自“链接表” - 每条记录包含飞机ID和名称,以及运营商ID和名称。任何类型的飞机都可以多次列出,具体取决于有多少组织运营。例如,“AW159 Wildcat”列出两次,一次用于陆军航空兵,一次用于皇家海军。它现在的工作方式,当页面最初加载时,面板3中列出了“AW159”两次。
我希望任何给定的飞机在初始页面加载时只显示一次,无论它在此链接表中列出的次数如何。但是,如果有人过滤营运组织,我希望显示所有可用的“重复项”。
有没有办法绕过所有飞机,但不知何故隐藏了飞机ID的重复?或者,我们的数据库设计方式可能存在更大的问题吗?我愿意接受建议。非常感谢大家!
编辑:抱歉没有发布代码;这里有一些。感谢大家的帮助!
1。 cfc中的查询和数组填充:
<cfquery name="queryByOperator" datasource="vertipedia">
SELECT view_aircraftbyoperators.aircraftID
, view_aircraftbyoperators.Aircraft
, view_aircraftbyoperators.operatorID
, view_aircraftbyoperators.Operator
, tbl_companies.country
, tbl_companies.companyShortName
FROM view_aircraftbyoperators JOIN tbl_companies
ON tbl_companies.ID = view_aircraftbyoperators.operatorID
ORDER BY Aircraft
</cfquery>
<cfset count = 1>
<cfset aircraftByOperator = arrayNew(2)>
<cfloop query="queryByOperator">
<cfset aircraftByOperator[count][1] = aircraftID>
<cfset aircraftByOperator[count][2] = Aircraft>
<cfset aircraftByOperator[count][3] = operatorID>
<cfset aircraftByOperator[count][4] = Operator>
<cfset aircraftByOperator[count][5] = country>
<cfset count = count+1>
</cfloop>
2。在页面上输出:
<ul>
<cfloop from="1" to="#ArrayLen(aircraftByOperator)#" index="i">
<cfoutput>
<li name="#aircraftByOperator[i][3]#" class="#aircraftByOperator[i][5]#">
<p>
<a href="aircraft.cfm?aircraftID=#aircraftByOperator[i][1]#">#aircraftByOperator[i][2]#</a>
</p>
</li>
</cfoutput>
</cfloop>
</ul>
[i] [1],[i] [3]和[i] [5]都是ID。 “operatorID”是根据操作飞机的人而改变的。我希望这有助于解释我正在尝试的内容,并再次非常感谢!
答案 0 :(得分:0)
Dan Bracuk的评论“这是否意味着你要将所有数据预先加载到javascript中?在那里抛出一些ajax并在需要时得到你需要的东西可能更有效”最终成为了要走的路为了我们。我想将他的评论标记为答案,但我无法看到如何做到这一点。
对于可能阅读此帖的其他人,我们
正如Dan所说,它非常快速且易于使用,特别是随着我们的数据库不断增长。
谢谢Dan!