29. december 2002 - 18:53Der er
17 kommentarer og 1 løsning
Hente data på en speciel måde
Jeg skal bruge et lidt specielt script! ;-) jeg har en database der ser næsten sådan ud;
---ID------URL-------HITS------ ------------------------------- --- 1-------A.com---- 32------ --- 2-------B.dk----- 45------ --- 3-------C.dk----- 48------ ..... osv osv ---28-------T.com---- 24------ -------------------------------- (der vil løbende komme nye URL's til med et højere ID)
Jeg skal så bruge en eller flere funktioner som ta'r de 10 URL's med højest ID og så skal den sortere de 3 URL's ud af de 10 ud som har de højeste antal hits!
arne_v: dit "script" gør heller ikke det jeg vil ha'.... den sortere jo bare alle resultater mht. id-størrelse.... den vægter overhovedet ikke hits på nogen måde!
så vidt jeg kan se gør scriptet ikke det rigtige... Den skal sortere på 2 forskellige værdier; FØRST skal den ta' de 10 med højeste ID.... DEREFTER skal den sortere de 10 den fik før efter hvor mange HITS de har og kun ta' de 3 med størst værdi!
(så vidt jeg kan se ta'r svoeber's script først og plukker 10 ud efter størrelsen af HITS... og derefter plukker den bare 3 tilfældige ud af de 10)
chanoa: nej... det gør heller ikke det jeg vil ha'... med de data jeg har i tabellen vil din funktion kun sortere efter id... (HVIS nogle har det samme id SÅ sortere den efter hits... men alle mine rækker har jo eget id)
Hvis man kunne gøre det i SQL, skulle man bruge en reference til den 10. nyeste række i tabellen - så kunne man gøre noget lignende: "SELECT * FROM tabel WHERE id >= [10. nyeste id] ORDER BY hits DESC"
....men jeg kan ikke finde et eksempel, hvor dette er muligt.
I PHP kan du gøre flg.: $sql = "SELECT * FROM tabel ORDER BY id DESC LIMIT 10"; $res = mysql_query($sql) or die (mysql_error()); while ($rows[] = mysql_fetch_assoc($res)) {} foreach ($rows as $val) { $sortarray[] = $val['HITS']; }
// Her sorteres listen efter HITS array_multisort($sortarray, SORT_DESC,$rows);
// Tager de 3 første ud $rows = array_slice ($rows, 0, 3);
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.