2009-11-02 42 views
0

我有一個競賽運行情況,看結果我做了這個短代碼:如何爲每個唯一的數據庫條目創建一個類別? (MySQL的/ PHP)

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」列中有10個可能的輸入名稱,但如果它是用戶輸入,而我想顯示/理解所有可能的結果。

這樣的代碼會是什麼樣子?我更喜歡編程,這樣的成語有時很難讓我自己想出來。謝謝!

回答

1

查詢是一個很簡單:

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

現在,我不知道怎麼會適合笨,但是從PHP MySQL數據庫連接並不難,如果這是真的排序一件特別的事情,這會做。

相關問題