PHP中关于排名和显示的问题

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

问题描述

  PHP中关于排名和显示的问题;这个代码不知道哪里有问题,显示的时候,少了1个人,如图:

我想要的是,显示还是按照第一列顺序order来依次显示,但是需要有一个排名的赋值(这个是根据record_1来进行排名的)

<?php
$stmtSelect = $pdo->prepare("SELECT *FROM m_orderWHERE`game` = ? AND`m_name` = ? AND`station` = ? AND`group` = ? AND`event` = ? AND`schedule` = ?ORDER BY `order` ASC");
$stmtSelect->execute([$game, $m_name, $station, $group, $event, $schedule]);$order_in = $stmtSelect->fetchAll(PDO::FETCH_ASSOC);$record_1_values = [];foreach ($order_in as $row) {$record_1 = (int)$row['record_1'];if ($record_1 !== 0 && !empty($record_1)) { $record_1_values[] = $record_1;}
}$ranks_1 = [];
$current_rank_1 = 1;
$previous_record_1 = null;asort($record_1_values);foreach ($record_1_values as $index_1 => $record_1) {if ($record_1 != $previous_record_1) {$current_rank_1 = count($ranks_1) + 1;}$ranks_1[$index_1] = $current_rank_1;$previous_record_1 = $record_1;
}$record_1_to_rank_map = array_combine($record_1_values, $ranks_1);foreach ($order_in as $index_1 => &$row) {$record_1 = (int)$row['record_1'];if (isset($record_1_to_rank_map[$record_1])) {$row['record_1'] = $record_1;$row['record_0'] = $record_1_to_rank_map[$record_1];} else {$row['record_1'] = $record_1;$row['record_0'] = null;}
}
foreach ($order_in as $row): ?><tr align="center" style="font-weight:bold;font-size:10px;"><td><?php echo htmlspecialchars($row['order']); ?></td><td><?php echo htmlspecialchars($row['check']); ?></td><td><a style="font-size:13px"><?php echo htmlspecialchars($row['bib']); ?></a></td><td><?php echo htmlspecialchars($row['name']); ?><br><a style="font-size:8px;color:#8a8a8a"><?php echo htmlspecialchars($row['delegation']); ?></a></td><td><a style="color:#4d88e0"><?php if ($row['record_1'] >= 9999990 ){echo ""; } else{echo htmlspecialchars($row['record_1']); }?></a></td><td><a style="color:#4d88e0"><?php echo htmlspecialchars($row['warn']).htmlspecialchars($row['penalty_1']); ?></a></td><td><a style="color:#4d88e0"><?php echo htmlspecialchars($row['result_1']); ?></a></td><td><span style="width:20px;background:#3d77b3"><a style="color:#FFF"><?php echo htmlspecialchars($row['record_0']); ?></a></span></td><td><?php echo htmlspecialchars($row['remark']); ?></td></tr><?php endforeach; ?></tbody></table></select>

友情提示:
  如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在少部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。

解决方案

  如下是上述问题的解决方案,仅供参考:

  在您的代码中,排名逻辑似乎是正确的,但是可能存在几个问题导致显示时少了一个人。以下是一些可能的问题和相应的解决方案:

  1. 数据筛选

    • 确保$order_in数组中的每个元素都经过了排名处理。如果$record_1为0或空,这些行可能没有被包含在排名中。
  2. 排名映射

    • 在创建$record_1_to_rank_map映射时,确保映射正确。如果$record_1_values数组中的值是唯一的,那么映射应该是正确的。如果存在重复的record_1值,映射可能不会按预期工作。
  3. 排名更新逻辑

    • $record_1值不是前一个值时,您将排名设置为count($ranks_1) + 1。如果$record_1_values数组中存在重复值,这可能导致排名不正确。您可能需要在排名时考虑相等的record_1值。
  4. 数据更新

    • 在更新$order_in数组时,确保所有元素都被更新了排名。如果$record_1_to_rank_map映射中没有对应的排名,您将record_0设置为null。这可能意味着某些行没有被正确处理。
  5. 数据一致性

    • 检查数据库中的数据是否一致,特别是record_1字段的值。
  6. 排名显示

    • 检查排名显示的逻辑是否正确。在您的代码中,排名显示在record_0字段,确保这个字段被正确填充。
  7. 错误检查

    • 检查是否有任何错误或警告在PHP错误日志中,这可能会提供一些线索。
  8. 调试

    • 在输出结果之前,添加一些调试语句来打印$order_in数组和$ranks_1数组,以确保它们包含预期的数据。
  9. 数组键的一致性

    • 确保在更新$order_in数组时,使用的键与原始数组中的键一致。
  10. 排序稳定性

    • 如果asort函数导致原始顺序丢失,您可能需要使用usort并提供一个自定义的排序函数来保持原始顺序。

  这里是一个简化的代码示例,您可以使用它来调试和检查排名逻辑:

// ...之前的代码...// 打印原始数据以进行调试
echo "<pre>";
print_r($order_in);
echo "</pre>";// ...排名逻辑...// 打印排名映射以进行调试
echo "<pre>";
print_r($record_1_to_rank_map);
echo "</pre>";// ...更新$order_in数组的代码...// 打印更新后的数据以进行调试
echo "<pre>";
print_r($order_in);
echo "</pre>";// ...HTML输出代码...

  通过添加这些调试语句,您可以在浏览器中查看原始数据、排名映射和更新后的数据,以帮助您确定问题所在。

  希望如上措施及解决方案能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

☀️写在最后

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏《CSDN问答解惑-专业版》,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给 bug菌 来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿哇。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391390.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ应用场景及特性

RabbitMQ是一款开源的消息队列中间件&#xff0c;拥有非常好用的管理控制面板&#xff0c;类似使用navicat一样&#xff0c;简便的操纵数据库。 应用场景 一、流量削峰 在一些并发量较高的场景下&#xff0c;比如秒杀活动&#xff0c;抢票等&#xff0c;同一时间访问量急剧增…

【Linux】shell命令与Linux权限的概念

目录 一、shell命令二、Linux权限的概念2.1 Linux权限的概念2.1.1 用户2.1.2 指令2.1.2.1 su指令2.1.2.2 sudo指令 2.2 Linux权限管理2.2.1 文件访问者的分类&#xff08;人&#xff09;2.2.2 文件类型和访问权限&#xff08;事物属性&#xff09;2.2.2.1 文件类型2.2.2.2 基本…

[240804] OpenTofu 1.8.0 发布,带来更友好的编码体验 | 生成式 AI 滥用现象分析

目录 OpenTofu 1.8.0 发布&#xff0c;带来更友好的编码体验生成式 AI 滥用现象分析 OpenTofu 1.8.0 发布&#xff0c;带来更友好的编码体验 OpenTofu 1.8.0 现已发布&#xff0c;主要功能包括&#xff1a; 变量和局部值的早期求值: 现在可以在模块源、后端配置和状态加密等更…

使用 1panel面板 部署 springboot 和 vue

代码仓库&#xff1a;还没弄 目录 网站介绍安装步骤1. 准备云服务器2. 准备域名&#xff08;可跳过&#xff09;3. 安装1panel面板4. 服务器开放端口5. 进入1panel面板6. 安装并启动软件&#xff08;服务器和面板开放端口&#xff09;7. 打包并上传项目7.1 打包 Java项目&#…

网页保护用户 小tips

在使用创建web开发的过程中&#xff0c;直接使用用户名url&#xff0c;容易造成用户信息的被攻击&#xff0c;例如对方直接访问 ../../.../username 的网页&#xff0c;可以窃取用户信息&#xff0c;然而把usename变成一堆乱码就安全的多 效果&#xff1a; 代码&#xff1a;…

想做抖音短视频,视频素材去哪里找啊?

各位抖音上的短视频创作者们&#xff0c;是否曾幻想过自己的作品能够在全网爆火&#xff0c;却常因为缺少那些能够让视频更加生动的素材而感到困扰&#xff1f;不用担心&#xff0c;今天我要为大家介绍几个优秀的视频素材网站&#xff0c;让你的抖音之路顺风顺水&#xff01; …

星环科技与宁夏银行“大数据联合实验室”揭牌,持续打造金融科技新范式

5月30-31日&#xff0c;2024向星力未来数据技术峰会期间&#xff0c;在峰会现场来宾共同见证下&#xff0c;星环科技与宁夏银行“大数据联合实验室”正式揭牌&#xff0c;宁夏银行股份有限公司首席信息官崔彦刚与星环科技副总裁邱磊共同为联合实验室揭牌。 星环科技与宁夏银行借…

【每日刷题】Day92

【每日刷题】Day92 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 面试题 16.05. 阶乘尾数 - 力扣&#xff08;LeetCode&#xff09; 2. 取近似值_牛客题霸_牛客网 (n…

4. 最长公共前缀

4. 最长公共前缀 题目题目分析 题目 题目分析 首先要对字符串数组进行分析&#xff0c;字符串数组元素的最长公共前缀肯定不会超过最小元素长度&#xff0c;并如存在公共前缀则需遍历整个字符串元素&#xff0c;有点像二维数组&#xff0c;最后加上截取字符串加上判空操作就完…

测试——Selenium

内容大纲: 什么是自动化测试 什么是Selenium Selenium工作原理 Selenium环境搭建 Selenium API 目录 1. 什么是自动化测试 2. 什么是Selenium 3. Selenium工作原理 4. Selenium环境搭建(java) 5. Selenium API 5.1 定位元素 5.1.1 CSS选择器定位元素 5.1.2 XPath定位元…

Kubernets(k8s) 网络原理三:同主机内Pod相互访问

前两篇文章中我们介绍了pod怎么和宿主机通信以及pod怎么访问外网&#xff0c;这两种通信是理解pod间通信的基础。 关于pod间的相互访问&#xff0c;这里还需要细化一下。回想一下pod在k8s节点中的分布&#xff0c;两个pod可能分布在同一台宿主机上&#xff0c;也可能分布在不同…

ECMAScript 12 (ES12, ES2021) 新特性

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

PXE实验

实验前准备 关闭VMware的dhcp 点击 编辑 点击 虚拟网络编辑器 选择 NAT模式 将dhcp取消勾选 准备两台虚拟机 一台试验机&#xff0c;&#xff08;网络环境正常并且有图形化的界面的rhel7&#xff09; 一台测试机 init 5 --------------> 开启图形化界面 如…

element-plus框架+vue3+echart——后台页面

一、图表样式 图表组件&#xff1a;echarts https://echarts.apache.org/examples/zh/index.html element-plus框架&#xff1a; https://www.cwgj.xyz/zh-CN/ 1、折线图 栅格 一共24。 12代表占一半50%&#xff0c; 当页面缩小到一定程度 占整个屏幕的100%。 id"mo…

拉刀基础知识——拉刀的种类

如前面所说&#xff1a;近期要围绕拉削和拉刀这个话题&#xff0c;分享一些相关的内容&#xff0c;从最基础的知识开始&#xff0c;为此还专门买了本旧书——《拉刀设计》入门学习。废话不多说&#xff0c;直接开始。 拉刀最早由冲头演变而来&#xff0c;用于加工方孔&#xf…

C:关于static 和 extern 关键字的介绍-学习笔记

目录 1、作用域与生命周期 1.1 作用域 1.2 生命周期 1.3 变量的作用域和生命周期之间的关系 2、static 和 extern 2.1 static 修饰局部变量&#xff1a; 2.2 static 修饰全局变量&#xff08;包含extern的作用&#xff09;&#xff1a; 2.3 static修饰函数&#xff1a…

由浅入深的了解进程(5)--环境变量

环境变量 前言环境变量1、更多的环境变量及添加和删除2、整体理解环境变量系统 3、内建命令 前言 在上一篇文章中简单的介绍了环境变量&#xff0c;但是没有讲述的比较全面了&#xff0c;所以现在再写一篇来介绍环境变量。 环境变量 在上一篇文章中&#xff0c;我们已经简单…

机械学习—零基础学习日志(高数18——无穷小与无穷大)

零基础为了学人工智能&#xff0c;真的开始复习高数 学习速度加快&#xff01; 无穷小定义 这里可以记住&#xff0c;无穷小有一个特殊&#xff0c;那就是零。 零是最高阶的无穷小&#xff0c;且零是唯一一个常数无穷小。 张宇老师还是使用了超实数概念来讲解无穷小。其实是…

Mecanim Animation System

动画系统简介 Unity 有一个非常丰富而又复杂的动画系统&#xff0c;官方称其为Mecanim。该系统具有以下功能&#xff1a; 支持从外部导入动画剪辑&#xff0c;如&#xff1a;fbx、mb | ma&#xff08;Autodesk maya 原件&#xff09;、.max&#xff08;3ds Max原件&#xff09…

Final Shell for Mac 虚拟机连接工具【简单易操作,轻松上手】【开发所需连接工具】

Mac分享吧 文章目录 效果一、下载软件二、安装软件三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件 链接&#xff1a;http://www.macfxb.cn 二、安装软件 三、运行测试 安装完成&#xff01;&#xff01;&#xff01;