Re: Sorting after a search - Mailing list pgsql-php

From Steve Werby
Subject Re: Sorting after a search
Date
Msg-id 018101c0beb1$362e59b0$6501a8c0@workstation7
Whole thread Raw
In response to Sorting after a search  (rickf <rickf@dufferinresearch.com>)
List pgsql-php
"rickf" <rickf@dufferinresearch.com> wrote:
> Currently I have the script below which works fine as far as it goes.
>
> I need to be able to sort on surname (later on other fields based on user
> input).
>
>   I tried to work in some of the sort functions like asort but couldn't
get
> any output.
> I suspect the problem lies in passing the values from the first search to
> the sort.
>
> I tried used pg_fetch_array to do the initial search then pass it on to
> asort but without luck.

Why not add an ORDER BY clause to the SQL statement?  It should be much
faster to sort the records within PostgreSQL than within PHP.

> Ultimately I will be having three search fields, a user pick list for
> fields outputted and sorted on.

I'd suggest building your SQL statement dynamically.

$sql = "SELECT * FROM table1 WHERE surname LIKE '$NAME%' ";
if ( $radio[1] == 1 ) { $sql .= 'ORDER BY last_name '; }
else if ( $radio[2] == 1 ) { $sql .= 'ORDER BY first_name '; }

Then if you're using checkboxes to allow the user to set the fields to
display, loop through the user inputted list and dynamically set the fields
to display.  Unless you're using PHP's serialize() and session functions (or
a similar method) you're not going to be able to pass the query results from
page to page to sort anyway - you'll have to requery Postgre every time you
want to change the output on the page based on some user input.

--
Steve Werby
President, Befriend Internet Services LLC
http://www.befriend.com/


pgsql-php by date:

Previous
From: rickf
Date:
Subject: Sorting after a search
Next
From: "Adam Lang"
Date:
Subject: Re: Sorting after a search