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

如何为MySQL查询的每个套餐添加Bronze/Silver/Gold等级并循环展示?

解决方案:为每个套餐生成三个等级的面板

嘿,这问题其实很好解决,核心思路就是在遍历套餐的循环内部,再嵌套一个遍历等级的循环,让每个套餐自动生成Bronze、Silver、Gold三个不同等级的面板。下面是具体的修改步骤和完整代码:

步骤1:先定义等级数组

我们把三个等级存进一个数组,方便后续循环调用:

$levels = ['Bronze', 'Silver', 'Gold'];

步骤2:嵌套循环生成对应面板

在你原本遍历套餐的while循环里,新增一个foreach循环遍历等级数组。每次循环都生成对应等级的HTML结构,把等级名称替换到原来的$planLevel位置即可。

修改后的完整代码如下:

$plansql = "select * from plans";
$resultps = $conn->query($plansql);
$resultp = array();
// 定义三个等级的数组
$levels = ['Bronze', 'Silver', 'Gold'];

if (mysqli_num_rows($resultps) > 0) {
    while($plan = mysqli_fetch_assoc($resultps)) {
        // 遍历每个等级,为当前套餐生成三个面板
        foreach($levels as $planLevel) {
            $resultp[] = '<div class="col-lg-2">
 <div class="panel price panel-red">
 <div class="panel-heading text-center">
 <h3>'.$plan['planName'].'</h3>
 <h3>'.$planLevel.'</h3>
 </div>
 <div class="panel-body text-center">
 <p class="lead panel-body-pricing" style=""><strong>'.$plan['planPrice'].'</strong></p>
 </div>
 <ul class="list-group list-group-flush text-center">
 <li class="list-group-item"><i class="icon-ok text-danger"></i> This plan is perfect for... </li>
 </ul>
 <div class="panel-footer">
 <a class="btn btn-lg btn-block btn-danger" href="#">SEE DETAILS</a>
 </div>
 </div>
 </div>';
        }
    }
}
// 正常输出拼接后的HTML
echo join("",$resultp);

额外扩展建议:处理等级差异化内容

如果每个等级的价格、套餐权益是不一样的(比如Gold等级价格更高、权益更多),那你需要调整数据库结构来适配:

  • 新增一个plan_levels表,字段可以设为id, plan_id(关联plans表的id), level_name, level_price, description
  • 查询时用联表查询,把每个套餐对应的三个等级数据一起拉取,再循环生成对应面板

这样就能更灵活地实现不同等级的差异化展示啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:13:27