Re: sorting via PHP or MySQL?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A somewhat more extensible version of the 1 query method:

http://www.garfieldtech.com/blog/php-group-by

If you will only ever have 2 values there, then either method is probably 
fine.  The "php group by" method (above) is more extensible if you're going 
to have a variable or arbitrary number of groups, though.

Cheers.

On Thursday 10 May 2007, James Tu wrote:
> (I've cross posted at the MySQL list as well)
>
> Here's an example with a simple table:
>
> describe collection;
>
> +------------------+---------------------+------+-----
> +---------------------+----------------+
>
> | Field            | Type                | Null | Key |
>
> Default             | Extra          |
> +------------------+---------------------+------+-----
> +---------------------+----------------+
>
> | id               | bigint(20) unsigned |      | PRI |
>
> NULL                | auto_increment |
>
> | receiver_id      | bigint(20) unsigned |      | MUL |
>
> 0                   |                |
>
> | set_type_id      | int(2) unsigned     |      |     |
>
> 0                   |                |
>
> | card_id          | int(3) unsigned     |      |     |
>
> 0                   |                |
>
> | completed_set_id | bigint(20) unsigned |      |     |
>
> 0                   |                |
>
> | created_on_gmt   | datetime            |      |     | 0000-00-00
>
> 00:00:00 |                |
> +------------------+---------------------+------+-----
> +---------------------+----------------+
>
>
> I want to end up with two PHP arrays.  One for set_type_id = 22 and
> one for set_type_id=21.
>
> (1) one query method:
> SELECT * from collection WHERE set_type_id=22 OR set_type_id=21;
> ...do query...
> while( $row = $this->db->fetch_array_row() ){
>     	if ($row['set_type_id'] == 21){
> 		$array_a[] = $row;
> 	} else {
> 		$array_b[] = $row;
> 	}
> }
>
>
> (2) two query method:
> SELECT * from collection WHERE set_type_id=22;
> ...do query...
> while( $row = $this->db->fetch_array_row() ){
> 	$array_a[] = $row;
> }
>
> SELECT * from collection WHERE set_type_id=21;
> ...do query...
> while( $row = $this->db->fetch_array_row() ){
> 	$array_b[] = $row;
> }
>
>
> Which method is better?  Take a hit using MySQL or take a hit using PHP?
>
> -James


-- 
Larry Garfield			AIM: LOLG42
larry@xxxxxxxxxxxxxxxx		ICQ: 6817012

"If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it."  -- Thomas 
Jefferson

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux