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

news2024/11/26 16:51:42

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

问题描述

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

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

<?php
$stmtSelect = $pdo->prepare("
                        SELECT *
                        FROM m_order
                        WHERE
                            `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.coloradmin.cn/o/1962259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LLM】五、open-webui+ollama搭建自己的RAG服务

系列文章目录 往期文章回顾&#xff1a; 【LLM】四、RAG简介 【LLM】三、open-webuiollama搭建自己的聊天机器人 【LLM】二、python调用本地的ollama部署的大模型 【LLM】一、利用ollama本地部署大模型 文章目录 ​​​​​​​ 目录 系列文章目录 文章目录 前言 一、RAG是…

计算机网络必会面经

1.键入网址到网页显示&#xff0c;期间发生了什么 2.在TCP/IP网络模型中。TCP将数据进行分段后&#xff0c;为什么还需要IP层继续分片 3.详细说明tcp三次握手&#xff0c;为什么是三次&#xff0c;若每次握手丢了&#xff0c;解决办法是什么 4.详细说明tcp四次挥手&#xff…

基于Docker搭建ELK

目录 1.系统操作 2.搭建es 3.kibana(新起终端跟es一起启动) 4.logstash&#xff08;新起终端和es一起启动&#xff09; 5.修改logstash配置文件 6. 创建索引 7. exit #退出容器 8. 在logstash节点插入数据&#xff0c;测试是否能拿取到&#xff08;下面如果本身有数据…

前端如何实现更换项目主题色的功能?

1、场景 有一个换主题色的功能&#xff0c;如下图&#xff1a; 切换颜色后&#xff0c;将对页面所有部分的色值进行重新设置&#xff0c;符合最新的主题色。 2、实现思路 因为色值比较灵活&#xff0c;可以任意选取&#xff0c;所以最好的实现方式是&#xff0c;根据设置的…

springboot文献检索系统-计算机毕业设计源码48521

摘要 文献检索系统主要功能模块包括用户管理、公告信息、新闻资讯、文献信息等&#xff0c;采取面对对象的开发模式进行软件的开发和硬体的架设&#xff0c;能很好的满足实际使用的需求&#xff0c;完善了对应的软体架设以及程序编码的工作&#xff0c;采取MySQL作为后台数据的…

[Git场景]常用工作场景演练

场景1:开发到一半的代码&#xff0c;还没提交&#xff0c;git拉下 对方的代码&#xff0c;但是其中有一个 commit 不想要怎么做 在 Git 中&#xff0c;如果你想拉取远程分支的代码&#xff0c;但不想要某个特定的提交&#xff0c;可以使用以下方法来解决&#xff1a; 方法1&a…

【Python】pandas:排序、重复值、缺省值处理、合并、分组

pandas是Python的扩展库&#xff08;第三方库&#xff09;&#xff0c;为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。 pandas官方文档&#xff1a;User Guide — pandas 2.2.2 documentation (pydata.org) 帮助&#xff1a;可使用help(...)查看函数说明文…

Linux基于centOS7 【进度条】【Git】【gdb】学习

目录 进度条 进度条的前置准备 sleep &#xff08;秒&#xff09;& usleep&#xff08;微秒&#xff09; sleep加\n和不加\n的区别 IO函数的缓冲区 回车&换行 10秒倒计时 进度条编写 git的使用 为什么要有git&#xff08;git版本控制器&#xff09; git的主要…

外卖项目day10---缓存商品/Spring Cache初学、购物车功能

缓存菜品&#xff0c;只需要在DishController中修改一下代码即可 /*** 菜品管理*/ RestController RequestMapping("/admin/dish") Api(tags "菜品相关接口") Slf4j public class DishController {Autowiredprivate DishService dishService;Autowiredpri…

【排序算法】Java实现三大非比较排序:计数排序、桶排序、基数排序

非比较排序概念 非比较排序是一种排序算法&#xff0c;它不通过比较元素之间的大小关系来进行排序&#xff0c;而是基于元素的特征或属性进行排序。这种方法在特定情况下可以比比较排序方法&#xff08;如快速排序、归并排序等&#xff09;更有效率&#xff0c;尤其是在处理大…

时间序列分析方法之 -- 长短期记忆网络(LSTM)原理及Python代码示例

目录 原理 适用情况 Python示例代码 结论 原理 长短期记忆网络&#xff08;LSTM&#xff0c;Long Short-Term Memory Networks&#xff09;是一种特殊的递归神经网络&#xff08;RNN&#xff09;&#xff0c;设计用于克服传统RNN在处理长序列数据时的梯度消失和梯度爆炸问…

如何在基于滤波框架的绝对定位系统中融合相对观测

文章目录 1 LIO、VIO propagation来代替IMU propagation2 TRO paper: Stochastic Cloning Kalman filter【有待填坑】 以无人驾驶定位系统为例&#xff0c;融合gnss&#xff0c;imu&#xff0c;轮速&#xff0c;camera LaneMatch(frame to map)&#xff0c;lidar scan match(fr…

Qgis 插件升级:3.28到3.34

1、下载 osgeo4w-setup 安装包 下载 获取 osgeo4w-setup.exe 的安装软件&#xff0c;每次下一步就可以了&#xff0c;安装位置可以自己调整 osgeo4w:https://download.osgeo.org/osgeo4w/osgeo4w-setup.exe 2、安装3.34 开发包 搜索qigs&#xff0c;将 desktop&#xff0c;…

开始使用OKR创建注重结果的文化

亚马逊对客户很痴迷。Facebook 行动迅速。成功企业的文化是传说中的东西&#xff0c;而且是正确的。正如管理顾问的名言&#xff1a;文化把战略当早餐吃。 无论行业或规模如何&#xff0c;文化的主要目标是激发企业获胜所需的行为。越来越多的成功要求企业关注结果而非任务&am…

Kafka的入门及简单使用

文章目录 前言一、Kafka 的基本架构&#xff1f;1. Producer&#xff08;生产者&#xff09;2. Broker&#xff08;代理/服务器&#xff09;3. Consumer&#xff08;消费者&#xff09;4. Consumer Group&#xff08;消费者组&#xff09;5. Topic&#xff08;主题&#xff09;…

docker前端部署

挂载&#xff0c;把自己的目录位置&#xff0c;挂载到容器内的HTML

万亿赛道!AI 大模型典型应用深度分析 2024

大模型由于其强大的自然语言与多模态信息处理能力&#xff0c;可以应对不同语义粒度下的任务,进行复杂的逻辑推理&#xff0c;还具有超强的迁移学习和少样本学习能力, 可以快速掌握新的任务, 实现对不同领域、不同数据模式的适配&#xff0c;这些特点使得大模型较容易的赋能其他…

吴恩达机器学习C1W2Lab05-使用Scikit-Learn进行线性回归

前言 有一个开源的、商业上可用的机器学习工具包&#xff0c;叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 目标 在本实验中&#xff0c;你将: 利用scikit-learn实现使用梯度下降的线性回归 工具 您将使用scikit-learn中的函数以及matplotli…

付费进群系统源码原版最新修复全开源版

付费进群&#xff0c;和平时所见到的别人拉你进群是不一样的&#xff0c;付费进群需要先缴费以后&#xff0c;才会看到群的二维码&#xff0c;扫码进群或者是长按二维码图片识别进群&#xff0c;付费进群这个功能广泛应用于拼多多的砍价群&#xff0c;活动的助力群&#xff0c;…

Chapter 21 深入理解JSON

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、JSON数据格式1. 什么是JSON&#xff1f;2. JSON数据的格式 二、JSON格式数据转化三、格式化JSON数据的在线工具 前言 在当今数据驱动的世界中&#xff0c;JSON&…