我有一个包含下表的数据库:
id value
-----------
1 yes
2 no
3 no
4 maybe
我正在使用一些简单的PHP来记录在投票网站上输入的选项。用户选择一个单选框并将其输入上表。但是,我想让它更灵活一些。我创建了一个简单的后端,允许管理员用户添加或删除轮询选项。当选择的数量不恒定时,我会在前端展示每个选项的投票数量?我知道如果民意调查选择是静态的,我可以很容易地做到这一点,但由于后端用户将改变选择,我怎么能动态显示结果呢?
答案 0 :(得分:0)
不要担心选择或选择的数量,抓住所有选票/选择并迭代它们并将它们无差别地添加到数组中:http://codepad.org/LWPyuTqj
$total = array();
$votes = array(1=>'yes',2=>'no',3=>'no',4=>'maybe');
foreach($votes as $vote) {
if (!isset($total[$vote]))
$total[$vote] = 1;
else
$total[$vote] += 1;
}
print_r($total);
答案 1 :(得分:0)
我不确定你在问什么。你正在寻找COUNT吗?
答案 2 :(得分:0)
我建议使用google graph API。这真的很容易!
http://code.google.com/apis/chart/interactive/docs/gallery/piechart.html
使用上面链接上的第一个示例动态生成代码。首先选择值。这假设有一个问题ID,因此您可以与问题相关联。在这种情况下,id 1。
$result = mysql_query('SELECT value,COUNT(*) as num FROM choises WHERE question_id = 1 GROUP BY value');
然后用PHP循环遍历数据
$results = array();
while ($row = mysql_fetch_assoc($result)){
$results[$row['value']] = $num;
}
通过这个你可以生成图表:
echo 'data.addRows('.count($results).');';
$i = 0;
foreach ($results as $value => $num){
echo'
data.setValue('.$i.', 0, "'.$value.'");
data.setValue('.$i.', 1, '.$num.');
';
$i++;
}