Vaikea selittää, mutta epäilen tähän olevan joku nokkela ratkaisu.
Kannasta haetaan kysymyksen id:llä vastauksia siihen samaiseen kysymykseen, oletetaan että seuraavanlaisia vastauksia on kannassa:
makkara kalja peruna peruna makkara kalja kalja kalja
Kuinka PHP:llä onnistuisi muuttujien kanssa toimiminen niin, että se kertoisi "makkara: 2kpl, kalja: 4kpl, peruna: 2kpl". Ja vastaukset tietty muuttuu kokoajan, joten PHP:n pitää haistaa eri vaihtoehdot ja tämän jälkeen katsoa kuinka monta kutakin löytyy.
Apuja?
Nämä tiedot saa suoraan selville SQL-kyselyllä:
SELECT vastaus, COUNT(vastaus) FROM vastaukset GROUP BY vastaus
Tämän kyselyn tulos on:
vastaus COUNT(vastaus) -------------------------------- kalja 4 makkara 2 peruna 2
Kyselyyn voi sijoittaa myös WHERE-ehdon ennen GROUP BY -osaa.
Tietysti määrät voi laskea myös PHP:ssä, mikä voi olla hyvä vaihtoehto, jos tiedot haetaan joka tapauksessa tietokannasta muuta käsittelyä varten.
Tässä on vielä muutama esimerkki, joista ensimmäisessä määrät lasketaan SQL:ssä ja toisessa määrät lasketaan PHP:ssä.
Taas Antilta arvokkaita neuvoja, kiitos!
Joku bugi taitaa mulla vielä olla. Kysymyksien väliin tulostuu vastaukset, mutta portaittain kasvavasti:
Kysymys 1: kalja 1 makkara 2 Kysymys 2: kalja 1 makkara 2 liina 5 rätti 6 Kysymys 3: kalja 1 makkara 2 liina 5 rätti 6 sohva 1 tuoli 1
Eli joku ei tyhjene. Otin käyttöön esimerkkisi numero 2, eli PHP:llä lasketaan määrät.
Tyhjennä taulukko aina ennen uutta SQL-kyselyä:
$maarat = array();
Ja näinhän se meni, kiitos taas. Nyt toimii.
Lisäsin tuohon vielä mysql_numrowsia apuna käyttäen prosenttiluvun perään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.