Cold Fusion Tips-N-Tricks
Next n Records

If you've ever been disgrunted with getting a Next n thing working, take a look below and copy-n-paste what you need.


Example HTML/CFML code:
<CFPARAM name="start" default="1"> <!--- Start displaying with record 1 if not specified via url --->
<CFPARAM name="disp" default="5">  <!--- Number of records to display on a page --->

<!--- Fetch records --->
<CFQUERY name="data" datasource="MyDB">
  SELECT MyField
  FROM MyDB
  ORDER BY MyField
</CFQUERY>

<CFSET end=Start + disp>
<CFIF start + disp GREATER THAN data.RecordCount>
  <CFSET end=999>
<CFELSE>
  <CFSET end=disp>
</CFIF>

<CFOUTPUT query="data" startrow="#start#" maxrows="#end#">
  #CurrentRow#. #MyField#<br>
</CFOUTPUT>
<CFOUTPUT>
<br>

<table border="0" cellpadding="10"><tr>
<!--- Display prev link --->
<CFIF start NOT EQUAL 1>
  <CFIF start GTE disp>
    <CFSET prev=disp>
    <CFSET prevrec=start - disp>
  <CFELSE>
    <CFSET prev=start - 1>
    <CFSET prevrec=1>
  </CFIF>
  <td><font face="wingdings">ç</font> <a href="NextN.cfm?start=#prevrec#">Previous #prev# records</a></td>
</CFIF>
<!--- Display next link --->
<CFIF end LT data.RecordCount>
  <CFIF start + disp * 2 GTE data.RecordCount>
    <CFSET next=data.RecordCount - start - disp + 1>
  <CFELSE>
    <CFSET next=disp>
  </CFIF>
  <td><a href="NextN.cfm?start=#Evaluate("start + disp")#">Next #next# records</a> <font face="wingdings">è</font></td>
</cfif>
</table>
</CFOUTPUT>


Return to the Cold Fusion Tips-N-Tricks topic list