首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从MySQL表中为每个不同用户获取最大值

从MySQL表中为每个不同用户获取最大值
EN

Stack Overflow用户
提问于 2021-09-05 08:57:25
回答 1查看 39关注 0票数 0

我的网站上有一张有很多不同用户的桌子。他们上传照片。如何显示上一张ID号最高的上传图片?

如果我执行此查询:

代码语言:javascript
运行
复制
SELECT user_name, MAX(pictid) FROM `pictures` GROUP BY user_name;

它在中工作,但它在网站上返回空结果。

用户名写得正确,只有ID部分是空的。为什么会这样呢?这是我的代码:

代码语言:javascript
运行
复制
    include('connection.php'); 

$sql = "SELECT user_name, MAX(pictid) FROM `pictures` GROUP BY user_name;"; 
$result = $mysqli->query($sql);

if ($result->num_rows > 0) {
  // output data of each row

   while($row = $result->fetch_assoc()) {

echo "<tr><td>". $row["user_name"] . "</td><td>". $row["pictid"] . "</td><td><img style='width:90px;' src='../uploads/".$row["picture"]."'</td><tr>";

  }
}
EN

Stack Overflow用户

回答已采纳

发布于 2021-09-05 09:22:59

当使用MAX()SUM()COUNT()等函数时,MySQL将以不同的名称返回这些值(因此不会与查询中的其他列名发生冲突)。

所以在您的例子中,它应该是$row["pictid"],而不是$row["MAX(pictid)"]

但是,由于您没有选择“原样”的pictid,所以可以将该函数化名为:

代码语言:javascript
运行
复制
SELECT user_name, MAX(pictid) as pictid FROM `pictures` GROUP BY user_name

(请注意上面查询中的as pictid )

现在,您可以使用以下方法获取值:

代码语言:javascript
运行
复制
$row['pictid']

旁注:

我建议您在本地环境中开发时使用display all errors and warnings。在这种情况下,您应该得到关于未定义的索引/数组键pictid的警告,这将帮助您调试问题。

别忘了修复<img>标签破损的问题,正如@brombeer在对您的问题的评论中指出的那样。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69061939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档