Search 表单上的模具(就地)用于查询数据筛选(如下拉选择筛选)。因为这是非常具体的。我将跳转到包的其他部分,但我想保持这个答案不变,因为它是好的。不要假设id是连续的,因为如果记录被删除,分页逻辑会中断。代码可能显示的记录太少,或者根本没有记录。另外,请始终使用c

Search 表单上的模具(就地)用于查询数据筛选(如下拉选择筛选)。因为这是非常具体的。我将跳转到包的其他部分,但我想保持这个答案不变,因为它是好的。不要假设id是连续的,因为如果记录被删除,分页逻辑会中断。代码可能显示的记录太少,或者根本没有记录。另外,请始终使用c,search,coldfusion,pagination,Search,Coldfusion,Pagination,表单上的模具(就地)用于查询数据筛选(如下拉选择筛选)。因为这是非常具体的。我将跳转到包的其他部分,但我想保持这个答案不变,因为它是好的。不要假设id是连续的,因为如果记录被删除,分页逻辑会中断。代码可能显示的记录太少,或者根本没有记录。另外,请始终使用cfqueryparam。它使用绑定变量来防止sql注入并提高性能。我不知道为什么我会因为试图提供帮助而被解雇。在这种情况下,你的查询可能是前25条记录,你的隐藏可能是最后一个ID。。。我只是想给CatherineL一个起点…我否决了这个,因为它


表单上的模具(就地)用于查询数据筛选(如下拉选择筛选)。因为这是非常具体的。我将跳转到包的其他部分,但我想保持这个答案不变,因为它是好的。不要假设id是连续的,因为如果记录被删除,分页逻辑会中断。代码可能显示的记录太少,或者根本没有记录。另外,请始终使用
cfqueryparam
。它使用绑定变量来防止sql注入并提高性能。我不知道为什么我会因为试图提供帮助而被解雇。在这种情况下,你的查询可能是前25条记录,你的隐藏可能是最后一个ID。。。我只是想给CatherineL一个起点…我否决了这个,因为它是不正确的,不能可靠地工作。另外,sql将数据库公开给sql注入。隐藏场方法也有同样的逻辑问题。ID值!=创纪录的数字。虽然帮助总是受到赞赏,但提供准确的信息很重要。特别是对那些不熟悉这门语言的人来说。嗨,Leigh,我展示的是基本的结构,多年来它一直在为我建立的一个网站完美地工作。看着CatherineL的脚本,我相信她会知道如何编辑它,并使它在她的框架内安全地工作。它简单、快速,并将信息排除在url(表单)之外。安迪,仅仅因为代码没有抛出硬错误,并不意味着它工作正常;-)看看sql逻辑。想一想如果ID中有间隙会发生什么。你可能会得到三张唱片,十张唱片或者一张也没有。试试看。而其他两个答案无论如何都会起作用。对于查询,请始终将cfqueryparam与变量值一起使用。然后,查询将得到保护,即使是针对意外的变量暴露。此外,绑定变量通过促进执行计划的重用来提高性能。还有一些其他问题,如缺乏范围界定和过度迹象,但这些问题并不那么关键。
<cfset Next = StartRow + DisplayRows>
<cfset Previous = StartRow - DisplayRows> 

<cfoutput> 
  <cfif Previous GTE 1> 
    <a href="#CGI.Script_Name#?StartRow=#Previous#"><b>Previous #DisplayRows# Records</b></a> 
  <cfelse> 
    Previous Records 
  </cfif> 
  <b> | </b> 
  <cfif Next lte records.RecordCount> 
    <a href="#CGI.Script_Name#?StartRow=#Next#"><b>Next 
    <cfif (records.RecordCount - Next) lt DisplayRows> 
      #Evalute((records.RecordCount - Next)+1)# 
    <cfelse> 
      #DisplayRows# 
    </cfif>Records</b></a>
  <cfelse> Next Records 
  </cfif> 
<cfoutput>
<cfparam name="StartRow" default="1"> 
<cfparam name="DisplayRows" default="25"> 

<cfset ToRow = StartRow + (DisplayRows - 1)> 
<cfif ToRow gt records.RecordCount> 
  <cfset ToRow = records.RecordCount> 
</cfif>
<Cfoutput query="records" startrow="#next#" maxrows="#displayrows#">

... code to output your data goes here

</cfoutput>
<Cfloop query="records" startrow="#next#" endrow="#next+displayrows#">

...code to output your data. 

</cfloop>
<cfloop from="#next#" to="#next+displayrows#" index="x">

.... your outputs will look like this: 
#records[columname][x]#

</cfoutput>
<cfparam name="pageNum" default="1">

<cfquery name="q" datasource="#application.dsn#">
    select * from yourTable 
</cfquery>

<cfset maxRows = 10>
<cfset startRow = min( ( pageNum-1 ) * maxRows+1, max( q.recordCount,1 ) )>
<cfset endRow = min( startRow + maxRows-1, q.recordCount )>
<cfset totalPages = ceiling( q.recordCount/maxRows )>

<cfset loopercount = round( q.recordCount/10 )>

<cfoutput>
    <cfloop from="1" to="#looperCount#" index="i">
            <a href="?pageNum=#i#">#i#</a>
    </cfloop>
</cfoutput> 

<br><br>

<cfoutput
    query="q" 
    startrow="#startRow#"
    maxrows="#maxRows#">

    #id#<br>

</cfoutput>
 <cfif submit IS "NEXT">

   <cfset count1 = #count# + 1>
   <cfset count2 = #count# + 25>

 <cfelseif submit is "BACK">

   <cfset count1 = #count# - 26>
   <cfset count2 = #count#>

 <cfelseif submit is "HOME">

   <cfset count1 = 1>
   <cfset count2 = 25>

 </cfif>
 SELECT *
 FROM mytabl
 WHERE ID BETWEEN #count1# AND #count2#
 <table>
   <cfoutput query="myquery">
     <tr>
       <td>
         #my data1#
       </td>
       <td>
         #my data2#
       </td>
    </cfoutput>
     </tr>
  <table>