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

While语句未输出ECHO问题:$getlogin==0时无预期输出

问题分析与修复方案

嘿,我来帮你拆解下这段代码的问题!核心问题出在你对mysql_fetch_array()返回值的理解上——这个函数在查询结果为空时,返回的是布尔值false,而不是0。所以当你的$checklogin查询没有匹配结果时,while循环的条件$getlogin = mysql_fetch_array($checklogin)会直接得到false,循环根本不会执行,那if ($getlogin == 0)的分支自然永远走不到,也就没了预期的"NOTHING TO DISPLAY"输出。

先贴出你的原代码方便对照:

while ($getlogin = mysql_fetch_array($checklogin)) { 
    if ($getlogin == 0) { 
        echo "NOTHING TO DISPLAY"; 
    } else{ 
        echo $getlogin['username']; 
        echo $getlogin['password']; 
    } 
}

修复方案

这里提供两种常用的修正思路,你可以根据场景选择:

方式一:先检查结果行数

先通过mysql_num_rows()判断查询是否有结果,再决定输出逻辑:

// 先获取查询结果的行数
$rowCount = mysql_num_rows($checklogin);
if ($rowCount == 0) {
    echo "NOTHING TO DISPLAY";
} else {
    // 有结果时循环输出数据
    while ($getlogin = mysql_fetch_array($checklogin)) { 
        echo $getlogin['username']; 
        echo $getlogin['password']; 
    }
}

方式二:用标记变量判断是否有数据输出

如果不想额外调用行数统计函数,可以用一个变量标记是否遍历到过数据:

$hasData = false;
while ($getlogin = mysql_fetch_array($checklogin)) { 
    $hasData = true;
    echo $getlogin['username']; 
    echo $getlogin['password']; 
}
// 循环结束后,若没有遍历到数据则输出提示
if (!$hasData) {
    echo "NOTHING TO DISPLAY";
}

另外提个小建议:mysql_*系列函数早已被PHP官方废弃,安全性和兼容性都很差,建议尽快换成mysqli或者PDO来操作数据库哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 07:02:44