У меня запущен конкурс, и для просмотра результатов я набрал этот короткий код:
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» есть десять возможных имен записей, но что, если бы это был ввод пользователя, а я хотел показать / подсчитать все возможные результаты.
Как бы выглядел этот код? Я новичок в программировании, и такие идиомы иногда мне сложно придумать самостоятельно. Спасибо!