05. januar 2003 - 14:30Der er
3 kommentarer og 1 løsning
Optæl grupering
$db, "Select * from reviews group by username"); $result = mysql_num_rows ($get_rows3); while($rows3 = mysql_fetch_array($get_rows3)) {
Jeg skal have gruperet mine rows efter username, det har jeg vidste fået gjort. Men nu skal jeg have den til at udskrive alle usernames fra en ende af, hvor den starter med den group der er størst, altså det username der optræder flest gange. Håber det er forståeligt.
$get_rows3 = mysql_db_query ($db, "Select * as total from reviews group by username order by total DESC"); $result = mysql_num_rows ($get_rows3); while($rows3 = mysql_fetch_array($get_rows3)) {
du kan ikke skrive SELECT * dvs vælg alt i hver record, når du så bagefter ønsker at sige GROUP BY
GROUP BY kræver at de udtrukne felter i de rækker der grupperes er ens. hvis du fx har en tabel med navne
ole olsen ole espersen jens olsen så kan du kun gruppere de to ole'r hvis du undlader at udtrække efternavnet.
hvis du havde lov til at hente det ud ville SQL jo ikke kunne vide om den skulle skrive olsen eller espersen i det felt der hedder efternavn.
men hvis du grupperer korrekt er det nemt at tælle hvormange der er i hver gruppe: SELECT fornavn, COUNT(*) as antal FROM tabel GROUP BY fornavn på tabellen ovenfor vil det give: fornavn antal ole 2 jens 1
mvh JakobA
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.