Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mysql haku montako kertaa sana

karvinen [19.10.2004 19:16:10]

#

Kuinkahan seuraava onnistuisi.

mysql tietokannassa sarakkeessa tieto on tietoa seuraavasti.

moi
hei
hei
moi
moikka

saisi tulostettua
moi 2 kpl
hei 2 kpl
moikka 1 kpl

Pitääkö noita haun tuloksia pyörittää jotenkin for lauseessa, vai onko olemassa helpompi tapa.

sooda [19.10.2004 20:28:08]

#

Lajittele ne. Jos vaikka moi, hei, hei, moi ja moikka on kaikki samassa taulukossa niin mä tekisin näin:

<?
// $taulu:ssa on sanoja
// katsotaan montako joka sanaa on
for ($i = 0; $i < count($taulu); $i++) $yht[$taulu[$i]]++;
// käydään saatu taulukko läpi ja kerrotaan montako
foreach ($yht as $sana => $montako) echo "$sana sanaa löytyi $montako kpl.<br>";
?>

Sami [19.10.2004 21:40:20]

#

Nuo kaikki tiedot saa haettua yhdellä mysql-kyselyllä:

SELECT teksti, COUNT(*) FROM taulu GROUP BY teksti ORDER BY 2 DESC

Jossa siis teksti on nuo sanat sisältävä sarake ja taulu on sen taulun nimi.
Tuo ORDER BY 2 DESC vielä järjestää ne luvun mukaan suurimmasta pienimpään.

EDIT: se siis palauttaa 2*n kokoisen taulukon, joista ensimmäisessä sarakkeessa on sanat ja toisessa lukumäärät. n on rivien (= eri sanojen) lukumäärä.

Vastaus

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

Tietoa sivustosta