Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL , luokat + sisällön määrä

Sivun loppuun

Maxfacus [17.08.2005 17:55:59]

#

Moi.
Miten saan tietokannassa olevien luokkien sisällön laskettua yhteen niin, että se näkyy (luku) muodossa. Eli jos minulla on luokka "kukat" ja haluan saada sisällön määrän esille esim: kukat(5kpl)...hetkinen onkohan tässä edes kysymys luokista. No, tuo keskustelu foorumin esimerkki on ehkä parempi, eli aihe: kukat vastauksia (x).

kasetti [17.08.2005 19:44:08]

#

jos nyt ihan oikein ymmärsin, niin voit käyttää mysql:n COUNT funktiota.

SELECT COUNT(kukat) as maara from TAULU;

vastaus on luku

jos taas kukat kentässä on arvoja, kuten: orkidea, ruusu, jne.. saat eri kukkien määrät GROUP lauseella:

SELECT kukat, COUNT(kukat) as maara FROM TAULU GROUP BY kukat;

vastaus tyyliin:
orkidea 10
ruusu 200

Maxfacus [17.08.2005 23:24:35]

#

Yritän sanoa sitä, että jos "kukat" ryhmässä on orkideoita 10 ja ruusuja 200, niin silloin "kukat" on 210, eli kuinka monta artikkelia "kukat" sisältää (no tulihan se sieltä). Onnistuin saamaan summan esittämälläsi tavalla erikseen, mutta en yhteen. Kiitos kuitenkin :)

kasetti [18.08.2005 08:23:25]

#

Maxfacus kirjoitti:

Yritän sanoa sitä, että jos "kukat" ryhmässä on orkideoita 10 ja ruusuja 200, niin silloin "kukat" on 210

tuo ensimmäinen esittämäni lauseenihan juuri antaa tuon haluamasi tuloksen. PHP esimerkki:

<?php
$kysely = mysql_query("SELECT COUNT(kukat) as maara FROM TAULU");
$sisalto = mysql_fetch_row($kysely);
$kukkia = $sisalto[0];
?>

panttu [18.08.2005 09:50:03]

#

pieni lisäkysymys tuli mieleen.
Miten muuten onnistuu kysely, jossa olisi kaikkien kukkien yhteysmäärä ja jokaisen kukka laadun määrä eli edellisen esimerkin mukainen tulostus olisi sitten, jotain

kukka      määrä     kaikkiaan
Orkkidea   45        210
Ruusu      165       210

Vai joutuuko tekemään kaksi kyselyä kantaan.

SELECT kukka,
COUNT(kukka) as määrä,
COUNT(???) as kaikkiaan
GROUP BY kukka

BadSource [18.08.2005 10:04:06]

#

Alikyselyllä.

SELECT kukka,
COUNT(kukka) as määrä,
(SELECT COUNT(kukka) FROM TAULU) as kaikkiaan
FROM TAULU
GROUP BY kukka

kasetti [18.08.2005 10:08:54]

#

voinkos kysyä että mihin tarkoitukseen tuloksia käytät? webbisivua varten vai jotain muuta? Kyselen tällaista vain siksi että miksi haluat tulokseen tiedon joka on joka riville sama... tuloksenhan voi tehdä laskemalla kaikki kukka-rivit yhteen....

edit: Kuten BadSource ehdotti niin alikysely on ratkaisu moneen ongelmaan, jos käytössä on mysql 4.1 tai uudempi.

Maxfacus [18.08.2005 15:59:49]

#

Kiitos näistä. Eli linkin nimi on kukat: (210 kpl) ja sitten kun klikkaan linkkiä "kukat", antaa se lista kukkien nimistä ja niiden artikkeli kohtaisen määrän:

kukka - määrä
-------------------
Orkkidea - 10
Ruusu - 200

En alkuun vain hahmottanut, kuinka koodia pyritellään oikean tuloksen saamiseksi. Kiitos avusta :)

panttu [18.08.2005 19:43:12]

#

kasetti kirjoitti:

voinkos kysyä että mihin tarkoitukseen tuloksia käytät? webbisivua varten vai jotain muuta? Kyselen tällaista vain siksi että miksi haluat tulokseen tiedon joka on joka riville sama... tuloksenhan voi tehdä laskemalla kaikki kukka-rivit yhteen....

edit: Kuten BadSource ehdotti niin alikysely on ratkaisu moneen ongelmaan, jos käytössä on mysql 4.1 tai uudempi.

Juu juuri nyt tuolle ei ole käyttöä, mutta vastaavia tilanteita tulee aina aika ajoin, enkä itse ole muutaratkaisua keksinyt, kuin tehdä kaksi kyselyä. Jukunen aina sitten tein manageripeliä, jossa yritin hakea pelaajan maalit tällä kaudella ja kaikkiaan. Tosin oma tietokantanikin on myslin 4.0.jotakin eli taitaa olla edelleen ainut vaihtoehto.


Sivun alkuun

Vastaus

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

Tietoa sivustosta