我有一个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
任何想法?
答案 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>';