Autor Zpráva
Leomato
Profil
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
Leomato:
kam a jak ukládáš hlasy?
Leomato
Profil
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
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
a neslo by to takhle bo už to mam na to udelané..
panther
Profil
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
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
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
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
Leomato:
A takto to vypadat nemá. Návrh databáze jsem už napsal.
Lamicz
Profil
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
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ů.

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