Sortere direkte i SQL'en
Hejsa eksperterJeg har et problem som jeg ikke ved om kan løses (eller det kan sikkert løses jeg kan bare ikke lige se hvordan). Jeg har en række referencer i en tabel (altså hvor brugere er kommet fra til min side), og tabelstrukturen ser således ud:
referencer:
id int(11) auto primary
url varchar (255)
tid int(11)
Jeg har lavet det sådan at flere referencer godt kan komme samtidig bare med forskelligt tidsstempel så det er muligt at hente data ud mellem indtastede datoer. Problemet er hvordan jeg sortere det ud fra SQL'en uden at den poster de samme referencer igen og igen. F.eks. hvis der er tre referencer fra eksperten.dk og en fra udvikleren.dk vil jeg have den skriver:
Eksperten.dk - 3 hits
Udvikleren.dk - 1 hit
og ikke
Eksperten.dk
Eksperten.dk
Eksperten.dk
Udvikleren.dk
Det kunne gøres med noget lignende
//fra functions filen
function getCount($mysqlquery) {
$sgetcount = mysql_query($mysqlquery);
return mysql_num_rows($sgetcount);
}
//
$referencecheck = "";
$sreferencer= mysql_query("SELECT * FROM referencer WHERE tid > '$starttime' AND tid < '$endtime' ORDER BY url");
WHILE($referencer= mysql_fetch_array($sreferencer)) {
if($referencer[url] <> $referencecheck) {
$hits = getCount("SELECT * FROM referencer WHERE url = '$referencer[url]' AND tid > '$starttime' AND tid < '$endtime'");
print"$referencer[url] - $hits hits<br />";
} else {
}
}
Men kunne egentlig være meget interessant at vide om det kan lade sig gøre direkte fra SQL'en og komme uden om if-løsningen i php? :)