Navigate records

Primary key is not in a order in search result. Need to navigate the records. Anyone have any ideas..

Display should be


 recordone hyperlink to moredetail.cfm
 recordtwo hyperlink to moredetail.cfm
 recordlast hyperlink to moredetail.cfm


 record full details

 <prev> <next>

note: prev next cant be incremented or decreased by one coz primary key is not in a sequence.
Who is Participating?
CF_SpikeConnect With a Mentor Commented:
Depending on what type of data you are querying you could use array syntax to access the numeric index for the query. This is fine for data which is unlikely to change while the user is browsing through the results. If it is likely that the data will change during that time you could put the query in a shared scope such as the server scope or the session scope if the query relates only to 1 particular user. If the query returns a large amount of data this would not be desirable as the query would be using up memory on the ColdFusion Server. In that case you would almost certainly be better off using a StoredProcedure to return only the records you want for each request.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

     <title>Next N Interface</title>

<CFSET myQuery = QueryNew('ColumnName')>
<CFLOOP FROM="1" TO="200" INDEX="i">
<CFSET NULL = QueryAddRow(myQuery)>
<CFSET NULL = QuerySetCell(myQuery,'ColumnName','Row#i#')>

<CFPARAM Name="url.StartRow" Default="1">
<CFPARAM Name="url.count" Default="10">

<CFIF (url.StartRow + url.Count) LTE myQuery.RecordCount>
<CFSET NextStart = url.StartRow + url.count>
<CFSET EndRow = NextStart>
<CFSET NextStart = "">
<CFSET EndRow = myQuery.RecordCount>

<CFIF (url.StartRow - url.Count) GTE 1>
  <CFSET PrevStart = url.StartRow - url.Count>
  <CFSET CheckStart = PrevStart + (url.count -(PrevStart-1) mod url.count)>
<CFIF CheckStart NEQ URL.StartRow>
  <CFSET PrevStart = CheckStart>
<CFSET PrevStart = "1">
<CFSET PrevStart = "">

<CFLOOP FROM="#url.StartRow#" TO="#Variables.EndRow#" index="i">
<TD STYLE="color:silver">
<CFIF Len(Variables.prevStart)>
<A HREF="#cgi.script_name#?StartRow=#prevStart#&count=#url.count#">Prev</A>
<TD STYLE="color:silver">
<CFIF Len(Variables.NextStart)>
<A HREF="#cgi.script_name#?startRow=#NextStart#&Count=#url.Count#">Next</A>


YogAuthor Commented:
so what i mean is i need record navigation like ado..any tricks ..thanks so much
YogAuthor Commented: i incremented the start and end rows accordingly..silly me!, any other ideas welcome ..

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to and use offer code ‘EXPERTS’ to get 10% off your first purchase.

YogAuthor Commented:
Thanks so much, am working on it, brb

I ve something like that. It's a bit long, but you can modify to make it suits your shoe. :)

A search form will be as the interface, as the result of submitting the button SEARCH, then my search result will be display in another page.

search.cfm (interface form to search)

<form action="SearchR.cfm" method="post">
username: <INPUT TYPE="text" NAME="Username" Size="20">
<INPUT TYPE="Submit" Name="Search" Value="Search">
<input type="hidden" name="FormSearch" value="Yes">

searchR.cfm (the search results)

<cfif IsDefined("Form.FormSearch")>
 <cfif IsDefined("Form.SearchPage")>
   <cfset SearchPage = "Form.SearchPage">
   <cfset SearchPage = "1">
 <!-- your search criterias must defined here -->    
 <cfif #Form.Username# is not "">
   <cfset SearchUsername = Form.Username>
   <cfset SearchUsername = "All Users">  

 <cfif IsDefined("URL.SearchPage")>
   <cfset SearchPage = URL.SearchPage>
   <cfset SearchPage = "1">
 <cfif IsDefined("URL.Username")>
   <cfset SearchUsername = URL.Username>
   No Username is defined!

<cfset OptionList = "End">

<cfquery datasource='myDNS' name="getMember">
  Select * From Member
  <cfif #trim(SearchUsername)# is "All Users">
    Where Username  LIKE '%'
    Where Username LIKE '#SearchUsername#%'

  <cfloop index="QueryItem" list="#OptionList#">
     <cfif QueryItem is Not "End">
     and #QueryItem# = 1

<!-- Set the constants --->
<cfset ResultsPerPage = "30">
<cfset PageStart = "1">

<!--- Setup the variables --->
<cfset NumOfPages = Ceiling(getMember.RecordCount / ResultsPerPage)>
<cfset FirstResult=ResultsPerPage * SearchPage - (ResultsPerPage - 1)>
<cfset LastResult=ResultsPerPage * SearchPage>
<cfif LastResult GTE getMember.RecordCount>
     <cfset LastResult=getMember.RecordCount>
     <cfset LastPage="yes">
<cfset Prev = SearchPage - 1>
<cfset Next = SearchPage + 1>

<cfloop query="getMember" startrow="#FirstResult#" endrow="#LastResult#">
 #FullName# #DOB# #Address#

<!-- Build the base link  --->
<cfset baselink = "SearchR.cfm?Username=#URLEncodedFormat(SearchUsername)#">

<cfloop index="QueryItem" list="#OptionList#">
 <cfif QueryItem is Not "End">
   <cfset addon = "&#QueryItem#=Yes">
   <cfset baselink = baselink & addon>

<!--- Set the "Previous" link, if any --->
<cfif Prev GTE 1>
  <cfset addon = "&SearchPage=#URLEncodedFormat(Prev)#">
  <cfset PreviousLink = baselink & addon>
    [<a href="#PreviousLink#">&lt;&lt;Previous</a>

<!--- Set all the page numbers --->
<cfloop index="PageCount" from="1" to="#NumOfPages#">
  <cfset addon = "&SearchPage=#URLEncodedFormat(PageCount)#">
  <cfset PageLink = baselink & addon>
  <cfif SearchPage is PageCount>
    <A href="#PageLink#">#PageCount#</A>
<!--- Set the "Next" link, if any --->
<cfif IsDefined("LastPage") is False>
  <cfset addon = "&SearchPage=#URLEncodedFormat(Next)#">
  <cfset NextLink = baselink & addon>
    <A href="#NextLink#">Next&gt;&gt;</A>]
  ]<br> </P>

<cfoutput><input type="hidden" name="FormSearch" value="Yes"></cfoutput>

Hmm, done !!

Good Luck then.

YogAuthor Commented:
Thanks sshh and Spike, shhzz , i have to gain some question points for you..Thanks a billion mates :)
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.