Forum Moderators: coopster
$query=sprintf("SELECT $user_name, COUNT(*) FROM $contri_table AS GROUP BY $user_name");
$result = mysql_query($query) or die(mysql_error());
$query="SELECT $user_name, COUNT(*) FROM $contri_table GROUP BY $user_name";
$result = mysql_query($query) or die(mysql_error());
select user_name, [b]count(*) as num_contrib[/b]
from contributions
group by user_name
order by [b]num_contrib desc[/b];
Which makes larger queries more readable, and you won't have to remember to update the number if you later add more columns.
Here's exactly what I've just tried:
create table contributions (
id int auto_increment primary key,
user_name text not null
);
insert into contributions (user_name) values ('fred');
insert into contributions (user_name) values ('fred');
insert into contributions (user_name) values ('joe');
select user_name, count(*) as num_contrib
from contributions
group by user_name
order by num_contrib desc;
Since fred has more contributions, he comes first:
+-----------+-------------+
¦ user_name ¦ num_contrib ¦
+-----------+-------------+
¦ fred ¦ 2 ¦
¦ joe ¦ 1 ¦
+-----------+-------------+