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

PHP foreach循环下数据库无数据时未显示提示信息的问题

问题分析与修复方案

问题根源

你的代码无法在数据库无数据时显示提示信息,核心原因是空数据判断被放在了foreach循环内部。当$latest_tenders数组为空时,foreach循环根本不会执行,导致内部的else分支永远无法触发。

修复后的完整代码

<?php if(empty($latest_tenders)): ?>
    <p style=" font-size:13px; word-spacing: 5px;color:tomato;">
        Tender Name: No advertised Tenders, Check again later.
    </p>
<?php else: ?>
    <?php foreach($latest_tenders as $tenders): ?>
        <?php
        $time = strtotime($tenders['post_date']);
        $month = date('m', $time);
        switch($month){
            case 1: echo "January "; break;
            case 2: echo "February "; break;
            case 3: echo "March "; break;
            case 4: echo "April "; break;
            case 5: echo "May "; break;
            case 6: echo "June "; break;
            case 7: echo "July "; break;
            case 8: echo "August "; break;
            case 9: echo "September "; break;
            case 10: echo "October "; break;
            case 11: echo "November "; break;
            case 12: echo "December "; break;
            default: echo "January ";
        }
        echo date('d', $time).', ';
        echo date('Y', $time).'&nbsp';
        echo date('h', $time).':'; echo date('i', $time).' |&nbsp';
        ?>
        <i class="fas fa-user"></i> <?php echo $tenders['author'];?></p> 
        </div><br/>
    <?php endforeach; ?>
<?php endif; ?>

关键修改说明

  1. 将空数组判断移至foreach循环外部:通过if(empty($latest_tenders))直接检测数据源是否为空
  2. 分支逻辑调整:
    • 数组为空时,直接输出提示信息
    • 数组非空时,执行循环渲染每条招标信息
  3. 保留了原有的日期格式化和内容渲染逻辑,仅调整了判断的位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:37