Autor | Zpráva | ||
---|---|---|---|
Leomato Profil |
#1 · Zasláno: 11. 10. 2010, 22:12:49
POtrebujem pomoc neviem ako urobiť počet odpovedí ankety.
mam tam 6 možných odpovedí a potrebujem aby mi to vypísalo počet vyplnených odpovedí (takže prázdne rata ako 0) pomože mi niekto? |
||
panther Profil |
#2 · Zasláno: 11. 10. 2010, 22:14:39
Leomato:
kam a jak ukládáš hlasy? |
||
Leomato Profil |
#3 · Zasláno: 11. 10. 2010, 22:17:32
mam tabulku ankety a tam id | otazka | vot_1 | vot_2 | vot_3 | vot_4 | vot_5 | vot_6
a mam stanovené 1 | Pekné | Áno | Nie | Možno | | | a potrebujem aby mi to vypisalo počet stanovených odpovedí takže v tomto priklade 3 |
||
panther Profil |
#4 · Zasláno: 11. 10. 2010, 22:21:00
Leomato:
udělej to celé trochu jinak. Ukládej si hlasy do samostatné tabulky (co hlas, to nový řádek), pak je jen sečteš. Tohle, co jsi vymyslel ty, moc dobré není. |
||
Leomato Profil |
#5 · Zasláno: 11. 10. 2010, 22:21:44
a neslo by to takhle bo už to mam na to udelané..
|
||
panther Profil |
#6 · Zasláno: 11. 10. 2010, 22:23:26
Leomato:
„a neslo by to takhle bo už to mam na to udelané..“ možná šlo, ale rozhodně to není správný návrh databáze. Nehledě na to, že nechápu, jak se jednotlivé hlasy ukládají, jak vypadá tabulka s třeba 10 hlasy. Zkus se podrbat levou nohou za pravým uchem (v SQL to děláš), třeba se ti to povede. Ale to neznamená, že je to v pořádku. |
||
Leomato Profil |
#7 · Zasláno: 11. 10. 2010, 22:39:48
panther:
Potom čo som „podrbal levou nohou za pravým uchem“ som prišiel na taketo dačo: $res = mysql_query("SELECT * FROM polls"); $f2 = mysql_num_rows($res); if($f2 != 0){ while($poll = mysql_fetch_array($res)){ if(!empty($poll[vote_1])) $v1 = 1; else $v1 = 0; if(!empty($poll[vote_2])) $v2 = 1; else $v2 = 0; if(!empty($poll[vote_3])) $v3 = 1; else $v3 = 0; if(!empty($poll[vote_4])) $v4 = 1; else $v4 = 0; if(!empty($poll[vote_5])) $v5 = 1; else $v5 = 0; if(!empty($poll[vote_6])) $v6 = 1; else $v6 = 0; $vot_all = $v1 + $v2 + $v3 + $v4 + $v5 + $v6; echo $vot_all; } } |
||
Keeehi Profil |
#8 · Zasláno: 11. 10. 2010, 22:39:52
Leomato:
Lepší to předělat teď než potom. Návrh databáze by mohl vypadat takto: otazky id | otazka 1 | Kolik Vám je let? 2 | Jste ženatý/vdaná? odpovědi moznost | id_otazky | odpoved 1 | 1 | do 15 let 2 | 1 | 15 - 30 let 3 | 1 | 31 - 45 let 4 | 1 | nad 45 let 1 | 2 | ano 2 | 2 | ne zaznamy id_otazky | moznost | čas, IP a další serepetičky 2 | 1 | … 1 | 4 | … 1 | 1 | … 1 | 4 | … |
||
Leomato Profil |
#9 · Zasláno: 11. 10. 2010, 22:42:23
CREATE TABLE `polls` ( `id` int(11) NOT NULL auto_increment, `type` decimal(1,0) NOT NULL, `question` text character set utf8 collate utf8_bin NOT NULL, `vote_1` text character set utf8 collate utf8_bin NOT NULL, `vote_2` text character set utf8 collate utf8_bin NOT NULL, `vote_3` text character set utf8 collate utf8_bin NOT NULL, `vote_4` text character set utf8 collate utf8_bin NOT NULL, `vote_5` text character set utf8 collate utf8_bin NOT NULL, `vote_6` text character set utf8 collate utf8_bin NOT NULL, PRIMARY KEY (`id`) ) CREATE TABLE `polls_votes` ( `id` int(11) NOT NULL, `ip` varchar(200) character set utf8 collate utf8_bin NOT NULL, `vot_1` decimal(1,0) NOT NULL, `vot_2` decimal(1,0) NOT NULL, `vot_3` decimal(1,0) NOT NULL, `vot_4` decimal(1,0) NOT NULL, `vot_5` decimal(1,0) NOT NULL, `vot_6` decimal(1,0) NOT NULL ) Takto to asi vyzera.. |
||
Keeehi Profil |
#10 · Zasláno: 11. 10. 2010, 22:47:12
Leomato:
A takto to vypadat nemá. Návrh databáze jsem už napsal. |
||
Lamicz Profil |
#11 · Zasláno: 12. 10. 2010, 10:31:22
Keeehi:
IMHO kdybys dal k odpovedim primary key auto_increment, tak by mohlo jit primo svazat zaznam na dane id, ktere by melo byt stale unikatni. |
||
Keeehi Profil |
#12 · Zasláno: 12. 10. 2010, 13:30:10
Lamicz:
Taky jsem nad tím přemýšlel, nakonec jsem se však rozhodl pro toto. Zdá se mi to více názorné. Možná se pak ale kvůli tomu budou v budoucnu hůře tvořit složitější dotazy. Je to jen jeden z několika možných návrhů. |
||
Časová prodleva: 14 let
|
0