需要从列中返回具有最大值的人员的名称(从数据库中获取)

时间:2017-10-17 06:42:16

标签: php mysql

$sql = "SELECT firstname FROM candidate_info1 WHERE votes=(select MAX(votes) from candidate_info1";

$result = $conn->query($sql);
if ($result->num_rows > 0) {
  // how do i echo the firstname of candidate with highest votes??
}

我是PHP的新手,所以请保持温和。

在代码中,我必须返回具有最大投票数的人的名字(存储在数据库candidate_info1中),我该怎么做?

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您的查询似乎是正确的,因为它:

  • 返回firstname
  • 的正确table
  • 表示在投票编号上与最大投票数匹配的记录

但是,如果您需要单个值,则可以使用其他答案中建议的order by desc。如果您想要返回与最高投票数相同的所有记录中的firstname,那么order by desc就不合适了。

此外,如果您的问题是votes未存储在此table中,而是存储在其他table中,那么您可能需要找到group s having最大计数,选择​​foreign key,然后使用in运算符返回主查询中的值。无论如何,如果您遇到此处未提及的特定问题,则需要添加详细信息。

答案 1 :(得分:0)

while($row = $result->fetch_assoc()) {
    $firstname=$row['firstname'];
}

echo $firstname;

在您的查询中,您已经使用最多投票返回了名称,因此您只需要获取结果以显示该名称。

答案 2 :(得分:0)

你必须通过

获取记录
$person_name = $result->fetch_assoc($result);
$person_name = $person_name['firstname ']