Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Eniten samaa tietoa taulukossa? (php, mysql)

Sivun loppuun

mikki [25.05.2011 08:20:17]

#

Mulla on kaksi taulukkoa:

Details:
id | accountid | name | jne
1 | 464354325 | test |
2 | 344565423 | tes2 |
3 | 234643523 | tes3 |
...

Tracker:
id | accountid | time
1 | 344565423 | 10:01 21.2.2011
2 | 344565423 | 10:02 21.2.2011
3 | 234643523 | 11:21 20.2.2011
...


Kyseessä on kävijälaskurin tyyppinen kyhäelmä jossa Tracker taulukkoon tulee jokaisesta käynnistä oma merkintä. Osaako joku neuvoa miten saan listattua viisi eniten esiintyvää accountid:tä(eli eniten samaa accountid:tä tracker taulukossa)?

Ja pikkaisen pidemmälle vietynä, kuinka saan listattua äskeisellä tavalla accountid:t, mutta numeroiden sijasta haluan esittää details taulukosta vastaavan nimen?

Lopuksi kiinnostaisi kuinka saan esitettyä kaksi edellistä, mutta huomioiden vain merkinnät jotka on tehty trackeriin viimeisen 24 tunnin aikana.

Ideoita?

punppis [25.05.2011 10:40:06]

#

Mutulla voisin arvailla jotain tähän suuntaan:

SELECT COUNT(accountid) as cnt, accountid FROM tracker GROUP BY accountid ORDER BY cnt DESC LIMIT 5

Teuro [25.05.2011 11:48:49]

#

ja toinen ongelma mennee varmaan ihan laittamalla where ehtoon halutun aikavälin, jolloin tulosjoukko rajautuu oikein.

Chiman [25.05.2011 12:27:03]

#

Menisiköhän näin

SELECT
  COUNT(t.accountid) as n,
  t.accountid,
  d.name
FROM tracker t
JOIN details d ON d.accountid=t.accountid
WHERE DATE_SUB(CURDATE(), INTERVAL 24 HOUR) <= t.time
GROUP BY t.accountid
ORDER BY n DESC
LIMIT 5

mikki [26.05.2011 08:28:12]

#

Tuolla Chiminin ohjeellahan se sujuu ongelmitta, kiitos!

Nythän tietojen tulostus käy tähän tapaan

while($row = mysql_fetch_array($result))
{
echo $row['accountid'] . " " . $row['name'];
}

Mitä jos haluaisin tulostaa vielä namen perään lukumäärän kuinka monta kertaa kyseinen accountid esiintyy taulukossa tuolla aikavälillä?

Lebe80 [26.05.2011 10:44:59]

#

Ootko kokeillu laittaa siihen vaikka tuota $row["n"]:ää?

mikki [26.05.2011 11:45:43]

#

Kiitos, sillähän se meneekin.

Tuli muuten vaan mieleen, että jos useampaa accountid:tä on saman verran niin millä perusteella ne sitten järjestyy? Tässä tapauksessa ei väliä, mutta ihan vaan mielenkiinnosta...

Lebe80 [26.05.2011 11:48:58]

#

ORDER BY:n mukaanhan sen pitäisi ne järjestää, eli riippuu mitä kaikkia määritteitä sinne oot pistäny.

The Alchemist [26.05.2011 13:03:58]

#

Ja jos järjestystä ei ole määritetty, niin se voi olla ihan mikä tahansa, mikä ei tietenkään tule yllätyksenä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta