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

PHP While循环无法执行但无报错,单页面异常问题求助

你的PHP While循环不运行的原因及修复方案

嘿,我一眼就看到问题所在啦,咱们来一步步拆解并解决它:

核心问题1:结果集指针被提前移动

你代码里的这一行:

$num = mysqli_fetch_array($result);

mysqli_fetch_array()会从结果集中取出第一行数据,同时把结果集的内部指针向后移动一位。等你后面执行while($row = mysqli_fetch_assoc($result))的时候,指针已经不在结果集的起始位置了——如果数据库里只有1条记录,while循环直接就没数据可取了;如果有多条,也会漏掉第一行。

核心问题2:记录数判断逻辑错误

mysqli_fetch_array()返回的是数组(成功取到行时)或者null(无更多行时),你直接拿它和0做比较if($num <= 0)是完全错误的逻辑,这根本没法正确判断结果集里有没有数据。正确的做法是用mysqli_num_rows()来获取结果集的总行数。

修复后的完整代码

$sqlquery = "SELECT * FROM tbl_accredited"; 
$result = $con->query($sqlquery); 

// 正确获取结果集行数
$num_rows = mysqli_num_rows($result); 
if($num_rows <= 0){ 
    echo "<h2>No records found.</h2>"; 
} 

$x=0; 
// 直接从结果集起始位置遍历
while($row = mysqli_fetch_assoc($result)){ 
    $x++; 
    echo ' 
    <tr> 
        <td>'.$x.'</td> 
        <td>'.$row['permitno'].'</td> 
        <td>'.$row['boarding_optr'].'</td> 
        <td>'.$row['boarding_addr'].'</td> 
        <td>'.$row['orno'].'</td> 
        <td>'.$row['boarding_name'].'</td> 
    </tr> 
    '; 
} 

额外建议:开启错误提示

你说没有任何报错信息,这可能是因为PHP的错误提示被屏蔽了。可以在代码开头加上这两行,方便排查后续的潜在问题:

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:32:09