Etienne,

> Well i hope someone will be able to give me a solution...
> Here s my problem:
> I'm working with a hudge mysql table (about 15 columns and 1000000 rows...)
>
>  in fact i ve got to count the number of couples `ncompte`/`naffaire` in the
> table and finaly calculate the number of couples that appear once, twice....
>
> here is the query i do:
> $result = mysql_query("SELECT count(*) FROM datas GROUP BY `ncompte`,
> `naffaire`");
>
> its result like something like this:
>       count(*)  naffaire  ncompte
>       4 affaire1 compte1
>       4 affaire2 compte2
>       1 affaire3 compte3
>       2 affaire4 compte4
>       1 affaire5 compte5
>
> (plus many more)
>
>
> my final result should be:
> $result[1]   :    2
> $result[2]   :    1
> $result[4]   :    2
>
> I manage to do this quite easily but i use a while instruction...
>
> while($row = mysql_fetch_array($result)) {
> array_push($suite, $row["count(*)"]);
> }
>
> As my table is very long the while takes a lot of time to complete...
> So my question is : Is there a solution to return my array as follow :
>
> 1  2  3                     1  4  7
> 4  5  6      ===>>    2  5  8              ???
> 7  8  9                     3  6  9
>
> It would allow me to not have to use this long long while....
> So if someone could telle me how to modify my query or what instructions to
> use to do that...


=there are various functions in PHP to 'reverse' arrays, but I must confess that I 
have never used them.
Regardless, if there is one to suit your purpose, it will surely consume CPU time to 
achieve the swap-over of
15M items.

=your example "my final result should be:" talks of enumerated arrays, so I shall 
assume this is the way you
always use them.

=you want to somehow achieve:
array[1][1] = array [1][1];
array[1][2] = array [2][1];
array[1][3] = array [3][1];
etc
(you know that you can't do the above, right!?)

=thereafter the array would be processed by using a mechanism such as two nested FOR 
loops to iterate through
the row/column elements of the array, eg

for ( i=1; i<15; i++ );
  for ( j=1; j<1000000; j++ );
    process( array[i][j] );
    etc

=can you leave the array where it is, and adjust the way the iterations are managed? 
Instead of proceeding
methodically by counting 'up', count 'down', eg

for ( i=15; i>0; i-- );
  for ( j=1000000; j>0; j-- );
    process( array[i][j] );
    etc

=Regards,
=dn



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to