我无法找到这个问题的正确答案。我有一个非常简单的代码,用于在mysql中进行查询,从表中选择一个确定列(称为流行度)中具有最大值的行(称为注释)。每行都有一个名为comment_id
的列这是代码:
$ connect_error ='抱歉,再试一次,发生连接错误';
$con = mysqli_connect('localhost','user_name','password') or die($connect_error);
mysqli_select_db($con, 'database') or die($connect_error);
$result = mysqli_query($con, "SELECT MAX(`popularity`) FROM `comments`");
while ($row = mysqli_fetch_assoc($result)) {
$most_popular = $row['comment_id'];
}
echo "most popular is: $most_popular";
mysqli_free_result($result);
mysqli_close($con);
屏幕未显示正确的结果。有人可以就这方面给我一个建议吗?
谢谢
答案 0 :(得分:3)
您希望显示comment_id
字段,但在SELECT
查询中没有该字段。您只选择最大popularity
值,而不是其他任何内容。
请尝试以下查询:
SELECT comment_id FROM comments ORDER BY popularity DESC LIMIT 1
这是按受欢迎程度对评论进行排序,然后选择最重要的评论。
当然,如果您希望能够在此记录中显示其他值,则可以轻松更改该列以选择更多列甚至是SELECT *
。
答案 1 :(得分:1)
要选择具有最大'受欢迎程度'列的行,请使用此查询;
$result = mysqli_query($con, "SELECT * FROM `comments` ORDER BY `popularity` DESC LIMIT 1");
如果您希望按人气排序,请删除LIMIT 1 ...
答案 2 :(得分:0)
当您的查询结果命名为comment_id
时,您正尝试从名为MAX(popularity)
的列中读取结果
答案 3 :(得分:0)
你需要
SELECT MAX(`popularity`) AS comment_id FROM `comments`
这将为列提供关联数组的正确名称。
答案 4 :(得分:0)
首先在mysql“ SELECT MAX(popularity
)FROM comments
中运行此查询。此输出为您提供与$ row [{index
]一起使用的索引,即第一行在这种情况下,索引将为popularity
,否则只需将$ row [{content_id
]更改为$ row [{popularity
]