06. oktober 2010 - 12:31Der er
8 kommentarer og 1 løsning
Sortere direkte i SQL'en
Hejsa eksperter
Jeg 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
$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? :)
$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 { }
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.