如何为每个唯一的DB条目创建一个类别? (MySQL的/ PHP)

时间:2009-11-02 13:52:46

标签: php mysql

我正在参加比赛,看看结果我做了这个简短的代码:

    date_default_timezone_set('America/New_York');
    echo "Results tallied at ". date("g:i:s A")."<br /><br />";

    $names = array('contestant1','contestant2','contestant3'...); //10 entries
    $plots = array();

    foreach ($names as $name) {
            $query = $this->db->getwhere('friday', array('votedon'=>$name));//CodeIgniter Active Record
            $count = $query->num_rows(); //again, CodeIgniter
            echo "Votes for " . ucfirst($name).": $count <br />";
            $plots[]= $count;
        }
        $total = $this->db->count_all('friday'); //CodeIgniter
        echo "<br />Total votes: $total <br />";
        $highest = 5+max($plots); //make the chart look better
        $url = "http://chart.apis.google.com/chart?cht=bvg&chs=900x300&chbh=40,100,40";
        $par1 = "&chds=0,$highest";
        $par2 = "&chl=". implode("|",$names);
        $par3 = '&chd=t:'. implode(",",$plots);

        $imgsrc = $url.$par1.$par2.$par3;
        echo "<img src='$imgsrc' />";

因此,这会生成一个显示当前轮询结果的条形图。我想知道的是,是否有一种优雅的方式可以避免输入人们可以投票的每个独特条目。 (第4行$ names = ....)对于本次比赛,“votedon”列中有十个可能的条目名称,但如果它是用户输入的话,我想显示/计算所有可能的结果。

这样的代码会是什么样的?我是编程的新手,这样的习语有时候很难让我自己想出来。谢谢!

1 个答案:

答案 0 :(得分:1)

查询非常简单:

SELECT votedon, count(*) 
FROM VOTING_TABLE
GROUP BY votedon

现在,我不知道它是如何适合codeigniter的,但是来自php的mysql连接并不那么难,如果这确实是一种特殊的事情,那就可以了。