You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP读取MySQL数据渲染为Bootstrap进度条并解决Points键未定义报错

报错原因&解决方案

这个Undefined array key "Points"报错核心是你读取的数组中不存在Points这个键,按以下步骤排查即可解决:

1 定位字段缺失原因

  • 检查你的SQL查询语句是否包含Points字段,若你写的是SELECT id,username FROM 用户表这类漏写Points的语句,返回结果自然没有对应键
  • 核对数据库表中积分字段的实际名称,注意数组键严格区分大小写,如果数据库字段是小写points,你写$row['Points']就会触发报错
  • 打印查询返回的完整结果确认数据是否正常获取:在index.php第9行前加入var_dump($row);exit;,如果输出为false或空数组,说明你根据用户ID查询的条件没有匹配到任何数据,需要核对session中存储的用户ID是否和数据库中存储的ID一致

2 修复报错+进度条不显示问题

给积分取值加判空逻辑,同时设置初始10分的默认值,就算查询异常也不会触发报错,且能正常显示初始进度:

// 积分默认值设为10,匹配初始要求
$userPoints = 10;
// 只有查询返回有效数据且存在Points字段时才替换默认值
if (!empty($row) && isset($row['Points'])) {
    $userPoints = (int)$row['Points'];
}
// 转换为百分比,限制最高100%
$progressPercent = min($userPoints, 100);
?>
<!-- Bootstrap进度条绑定百分比 -->
<div class="progress">
  <div class="progress-bar" role="progressbar" style="width: <?php echo $progressPercent; ?>%" 
       aria-valuenow="<?php echo $progressPercent; ?>" aria-valuemin="0" aria-valuemax="100">
    <?php echo $userPoints; ?>/100
  </div>
</div>

内容的提问来源于stack exchange,提问作者DerangedBoBo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:54:02