如何在表格中添加投票并在屏幕上显示

时间:2012-03-06 23:14:29

标签: php mysql

我有一个PHP代码,可以从我的'选举'表中选择和显示数据。我有另一个名为'votes'的表,其中包含用户的所有投票。我该如何选择两张桌子并展示投票最多的一方?所以如果劳动有5票,例如自由民主党有3票,我怎么在屏幕上显示'劳工以__票赢得了这次选举?我的php如下:

    <?php
$id = $_GET['election'];
$result = mysql_query("SELECT election_id, name_of_election, date, month, year FROM elections WHERE election_id = '$id'")
or die(mysql_error()); ;

if (mysql_num_rows($result) == 0) {
       echo '<hr><h3>There Aren\'t Any Elections Setup Yet</h3><hr> ';
    } else {

        echo '<hr><h3>Vote Count</h3><hr>';


while($info = mysql_fetch_array($result))
{
        echo "<tr>";
        echo "<td>" . $info['name_of_election']. "</td>";
        echo "<br/><br/><td>" . $info['date']. ' '. $info['month']. ' ' . $info['year']. "</td>";
        echo "<br/><br/><td>" . '<hr>' .  "</td>";


}
    }
echo "</tr>";
echo "</table>";
?>

我的数据库表包含以下字段:

(不要问日期字段)

选举:election_id,name_of_election,日期,月份,年份,party1,party2,party3,status

票:vote_id,election_id,ni,party

任何想法?

1 个答案:

答案 0 :(得分:5)

这将按照计数的降序为您提供所选选举的聚会和计数:

$result = mysql_query(
    sprintf("
        SELECT votes.party, COUNT(votes.vote_id)
        FROM votes
        WHERE election_id = %d
        GROUP BY election_id, votes.party
        ORDER BY COUNT(votes.vote_id) DESC",
        mysql_real_escape_string($id)
    )
);

编辑:显示第一行(将是投票最多的一方):

list($party, $votes) = mysql_fetch_row($result);
echo '<p>'.$party.' won with '.$votes.'</p>';