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

如果我执行此查询:
SELECT user_name, MAX(pictid) FROM `pictures` GROUP BY user_name;它在中工作,但它在网站上返回空结果。

用户名写得正确,只有ID部分是空的。为什么会这样呢?这是我的代码:
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>";
}
}发布于 2021-09-05 09:22:59
当使用MAX()、SUM()、COUNT()等函数时,MySQL将以不同的名称返回这些值(因此不会与查询中的其他列名发生冲突)。
所以在您的例子中,它应该是$row["pictid"],而不是$row["MAX(pictid)"]。
但是,由于您没有选择“原样”的pictid,所以可以将该函数化名为:
SELECT user_name, MAX(pictid) as pictid FROM `pictures` GROUP BY user_name(请注意上面查询中的as pictid )
现在,您可以使用以下方法获取值:
$row['pictid']旁注:
我建议您在本地环境中开发时使用display all errors and warnings。在这种情况下,您应该得到关于未定义的索引/数组键pictid的警告,这将帮助您调试问题。
别忘了修复<img>标签破损的问题,正如@brombeer在对您的问题的评论中指出的那样。
https://stackoverflow.com/questions/69061939
复制相似问题