My website allows visitors to search for homes (using PHP and MySql). After the search, they are presented with a list of matches which they can click on to see the detail page for that home. To see the next home, they currently have to click back, then click on the next home in the search results list they want to view.
I would like to make it so that once they have clicked on one home to view the details, they would have a “Next Home” and “Previous Home” link/button to use to navigate the results set without having to go back to the search results page.
I’ve seen this done, but can’t get my head around how to do it. I assume you have to save the recordset from the initial search somewhere, and then recall it on the details page. And you’d have to know that you were looking at the xth home out of Y homes.
Can anyone give me a broad overview of how this would work? Do I save the initial search results in a temp MySQL table and pass that table name to the details page? Or use a session variable to hold the results set? Keep in mind that a visitor could make several different searches during their session.
Any assistance would be most appreciated,
Tom
When I’ve done this, I’ve saved the details of the current search in SESSION, and then requeried the database when I’ve needed to – so you can query it on the detail page to generate a Next and Previous link, and so on. I normally use a SESSION variable called ‘parameters’, and add the whole of the SQL WHERE statement to it.
If someone’s making multiple searches, this will let them make one at a time – subsequent searches will over-write what’s already in there. If your users are going to be making multiple searches at the same time using different parameters, you’ll need to find a way to differentiate the parameters for each search. You can give each set a unique name by prefixing it with a call to
uniqid, and you’ll then need to make sure you pass the unique identifier to the detail page, so it can work out which set of parameters it needs to run.