Order by 'flest gange angivet i tabellen'...

Tags:    php

Hey,
har dette lille problem.. Er ved at lave en liste over 50 personer, som har skrevet flest artikler.. Men kan ikke få den til at 'order by' så det navn der er angivet flest gange i "forfatter" står øverst osv.
Har prøvet med:

$hent_ol = mysql_query("select * from tabel group by sum(count(forfatter)) LIMIT 50");
while($vis = mysql_fetch_assoc($hent_ol)) {

- Men det virker ikke.

Hvad mener I?




5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hey,
har dette lille problem.. Er ved at lave en liste over 50 personer, som har skrevet flest artikler.. Men kan ikke få den til at 'order by' så det navn der er angivet flest gange i "forfatter" står øverst osv.
Har prøvet med:

$hent_ol = mysql_query("select * from tabel group by sum(count(forfatter)) LIMIT 50");
while($vis = mysql_fetch_assoc($hent_ol)) {

- Men det virker ikke.

Hvad mener I?

Prøv med denne her:

$hent_ol = mysql_query("SELECT COUNT(id) AS c, forfatter FROM tabel GROUP BY forfatter ORDER BY c DESC LIMIT 10");
while($vis = mysql_fetch_array($hent_ol)) {

}

:)



Desværre, det virker ikke.. Den finder godt nok 50, men den skriver ikke nogen oplysninger, når jeg prøver at hive dem ud.. :/



Du skal jo også lige vælge resten af de kolonner som du vil vise :) Den henter jo ikke * ud :)



Okay.. Når jeg skal udtrække data, er det så stadig $vis[celle]?
Og hvad mener du med *? Der er jo netop ikke sådan en i denne.. :)



Hvis du fx skal have cellen "julemand" ud, så skal du bare tilføje den til sql'en:

$hent_ol = mysql_query("SELECT COUNT(id) AS c, forfatter, julemand FROM tabel GROUP BY forfatter ORDER BY c DESC LIMIT 10");
while($vis = mysql_fetch_array($hent_ol)) {
print $vis['julemand'];
}



t