如何为 PDO 数值数组查询结果实现条件格式化(如数值范围高亮)

雨婷同学_7767

雨婷同学_7767

2026-09-14

805人浏览

原创

如何为 PDO 数值数组查询结果实现条件格式化(如数值范围高亮)

本文讲解如何在使用 PDO::FETCH_NUM 获取 MySQL 查询结果后,对特定列(如 Downstream SNR)中 52–120 范围内的数值动态添加红色样式,解决因使用数值索引导致字段逻辑判断困难的问题。

本文讲解如何在使用 `pdo::fetch_num` 获取 mysql 查询结果后,对特定列(如 downstream snr)中 52–120 范围内的数值动态添加红色样式,解决因使用数值索引导致字段逻辑判断困难的问题。

在使用 PDO::FETCH_NUM 时,结果以纯数字索引数组(如 $row[0], $row[1]…)形式返回,无法通过字段名直接识别语义,因此条件格式化需明确指定目标列索引。根据你的 SQL 查询:

SELECT mac_address, upstream, downstream_snr, downstream, uptime FROM modems ...

各字段对应索引为:

  • mac_address$row[0](字符串,不参与数值判断)
  • upstream$row[1]
  • downstream_snr$row[2] ✅(需高亮的列)
  • downstream$row[3]
  • uptime$row[4]

因此,仅应对 $row[2](Downstream SNR)应用 52–120 的颜色规则,其他列保持默认样式。

以下是完整、安全、可维护的渲染逻辑(含错误处理与结构修复):

$sql = "SELECT mac_address, upstream, downstream_snr, downstream, uptime FROM modems WHERE rpi_serial = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$rpi]);
$rows = $stmt->fetchAll(PDO::FETCH_NUM);

if (empty($rows)) {
    echo "0 results";
} else {
    echo '
'; foreach ($rows as $row) { echo ""; for ($i = 0; $i = 52 && $value $value"; } else { echo ""; } } echo ""; } echo '
Mac Upstream Downstream SNR Downstream Uptime
$value
'; }

关键改进说明

  • 使用 prepare() + 参数绑定防止 SQL 注入;
  • fetchAll() 替代 fetch() 避免首行丢失(原代码中 $nRows = $stmt->fetch(...) 已消耗第一行);
  • 显式区分 <thead> 和 <code><tbody> 提升语义化与可访问性; <li>对 <code>$row[2] 增加 is_numeric() 校验,避免非数字值(如 NULL 或空字符串)触发警告;
  • 使用 'inherit' 代替 'green' 保持非目标列样式中立,避免意外覆盖 CSS 主题;
  • 修复 HTML 错误:原 <th> 中 <code>id="DWS">Downstream SNR 缺少闭合引号,已修正。

    ? 进阶建议
    若需多列条件格式(如同时高亮 upstream 异常值),可将规则抽象为关联数组:

    $rules = [
        2 => ['min' => 52, 'max' => 120, 'color' => 'red'], // downstream_snr
        1 => ['min' => 0,   'max' => 30,  'color' => 'orange'] // upstream too low
    ];

    再在循环中动态匹配 $rules[$i],提升可扩展性。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1549

3

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.06.27

1171

7

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4034

6

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

180

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

80

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

60

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习