如何在SQL查询用户ID切换时生成对应用户的Profile Div?
解决按用户分组展示标题的问题
我来帮你搞定这个按用户分组展示标题的需求~核心思路就是跟踪当前处理的用户ID,每次检测到用户ID变化时,切换对应的div容器,把同一用户的标题都放到专属的div里。
修改后的完整代码
$result = mysqli_query($con, $sqltwo) or die(mysqli_error()); // 初始化当前用户ID,用来检测分组切换 $current_user_id = null; // 循环遍历查询结果 while($row = mysqli_fetch_array($result)) { // 检测用户ID是否发生切换 if ($row['user_id'] !== $current_user_id) { // 如果不是第一个用户,先关闭上一个div if ($current_user_id !== null) { echo "</div>\n"; } // 更新当前用户ID $current_user_id = $row['user_id']; // 生成新的用户div,class用user+ID的形式,适配任意数量的用户 echo "<div class=\"user{$current_user_id}\">\n"; } // 输出当前标题 echo $row['title'] . "<br>\n"; } // 循环结束后,关闭最后一个div(避免标签不闭合) if ($current_user_id !== null) { echo "</div>\n"; }
代码关键点解释
- $current_user_id变量:用来记录当前正在处理的用户ID,初始值设为
null,确保第一次循环能正常创建第一个div。 - 用户ID切换检测:每次循环先对比当前行的
user_id和$current_user_id,如果不同就触发分组切换逻辑。 - 动态生成div类名:用
user{$current_user_id}作为class名称,不管未来有多少用户,都能自动生成对应的容器,比如用户1对应user1,用户2对应user2,比固定写userone、usertwo更灵活。 - 闭合最后一个div:循环结束后一定要检查并关闭最后一个div,否则会导致HTML结构不完整,影响页面渲染。
最终输出示例(HTML)
<div class="user1"> title1<br> title2<br> title3<br> title4<br> title5<br> </div> <div class="user2"> title6<br> title7<br> </div>
内容的提问来源于stack exchange,提问作者Chao1920
相关产品推荐
相关产品推荐

