Autor Zpráva
wolfik
Profil
Dobrý den,

do databáze jsem si ukládal data z dotazníku. Většina byla radio group, do databáze jsem si ukládal pouze číselné hodnoty 1-5.

nyní bych si chtěl do php vypsat: např. kolikrát v otázce č. 5 označili radio="2".

zatím to mám takto, což funguje, ale cítím, že to není moc správné.
SELECT count( `znalosti` ) FROM `dotaznik` WHERE znalosti=1
SELECT count( `znalosti` ) FROM `dotaznik` WHERE znalosti=2
SELECT count( `znalosti` ) FROM `dotaznik` WHERE znalosti=3
SELECT count( `znalosti` ) FROM `dotaznik` WHERE znalosti=4
SELECT count( `znalosti` ) FROM `dotaznik` WHERE znalosti=5


řeší si to na úrovni databáze nebo php?

Děkuji
xmark
Profil
Proč počítáš výskyty všech hodnocení, když tě zajímá jen znalosti=2 a řekněme otazka=5?
wolfik
Profil
Nene, špatně jsem se asi vyjádřil... chci znát všechny odpovědi.


toto je mým záměrem:

otázka č.1
možnost 1 = 8x
možnost 2 = 1x
možnost 3 = 0x
možnost 4 = 27x
možnost 5 = 2x

otázka č.2
možnost 1 = 0x
možnost 2 = 127x
možnost 3 = 45x
možnost 4 = 77x
možnost 5 = 6x

.
.
.
Tori
Profil
SELECT COUNT(*) AS 'pocet' FROM dotaznik  WHERE otazka = 5 GROUP BY znalosti
Asi takhle? Nevím, jak ukládáte jednotlivé otázky.

edit: Měla jsem přehozené GROUP BY a WHERE. Opraveno.
wolfik
Profil
Tori:
"znalosti" je vlastně název sloupce s otázkou č.5

Sloupce (jakožto názvy otázek) jsem si bohužel neoznačil jako: otazka1 - otazka13, ale pokazde jinak (kdojsi, znalosti, namluveny, hudba, zpracovani, prinos, web, doporucil, libilo, nelibilo, vylepsit), tudíž nemůžu použít
WHERE otazka = 5
protože slovo OTAZKA se tam nikde nevyskytuje.
Ale funguje to ikdyž odmažu tu podmínku.
Zbytek asi v php přes nějaký cyklus, že?
Děkuju Tori
wolfik
Profil
No ještě jeden problém...
za normalních okolností to vypíše

3
8
16
4
2

ale co když u možnosti č.3 nebude ani jeden hlas, tím pádem to vynechá a bude to vypadat takto:
3
8
4
2

a já nebudu vědět, která z možností byla vynechána.

potřebuju, aby mi to vypsalo dva sloupečky s tím, že v první bude číslo možnosti a v druhém četnost.

1 56
2
3 23
4 15
5 6

takže ikdyž nějaká možnost nebude mít žádný počet, budu vědět, která to je.
Tori
Profil
Šlo by zjistit možnost + četnost:
SELECT znalosti, COUNT(*) AS 'pocet' FROM dotaznik GROUP BY znalosti
Ale najde vám to pouze ty zodpovězené. Texty možných odpovědí máte taky v db? Pokud ne, tak by se jednotlivé možnosti musely identifikovat až při zpracování v PHP.
Při tomhle schématu (1 řádek = 1 respondent, jednotlivé otázky jako sloupce) si ale myslím, že budete muset použít jeden dotaz na každou otázku zvlášť.
wolfik
Profil
Tori:
textová podoba možnosti 1-5 jsou u každé otazky jiné. V databázi je nemám uložené. Ale v PHP se už dokážu zeptat na číslo možnosti a doplnit tomu textovou podobu.

Při tomhle schématu (1 řádek = 1 respondent, jednotlivé otázky jako sloupce) si ale myslím, že budete muset použít jeden dotaz na každou otázku zvlášť.
s tím počítám. Ale je to pořád lepší než v mém první příspěvku.

Děkuju Tori, Kajman
Kajman_
Profil *
Ještě můžete groupovat dle otázky i znalosti...

SELECT otazka, znalosti, COUNT(*) AS 'pocet' FROM dotaznik GROUP BY otazka, znalosti ORDER BY 1, 2

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0