while else statement? PHP


while else statement? PHP

所以我使用while语句对空值进行了验证,代码是

while (!$rs->EOF){ 
    echo "<tr><td>".$rs->Fields("Branch")."</td>";
    $rs->movenext();
}
$rs->Close();   
?>

我想要实现的是有一个"else"语句,尽管我知道使用where语句是不可能的。在where语句中,哪一个等价于它?

while (!$rs->EOF){ 
    echo "<tr><td>".$rs->Fields("Branch")."</td>";
    $rs->movenext();
}
if(!$rs->EOF)
{
    echo "<tr><td> Branch is missing</td>";
}
$rs->Close();   
?>

我试着使用"if",虽然它没有打印出我想要打印的,但我没有得到任何错误

而Else在php中不存在。

您可以使用:

if ($rs->EOF) {
    echo "<tr><td> Branch is missing</td>";
} else {
    while (!$rs->EOF){ 
        echo "<tr><td>".$rs->Fields("Branch")."</td>";
        $rs->movenext();
    }
}
$rs->Close(); 

我想建议一种稍微不同的方法来解决这个问题,它在我的脑海中更有意义:

if (!$rs.EOF()) {
    while (!$rs.EOF()) {
        // code...
    }
}
else {
    // code...
}

我认为这对我来说更有意义,因为你通常希望你的预期结果在if块中处理,而其他结果在else块中处理。

while (!$rs->EOF){的意思是"继续这样做,直到$rs->EOF变成true"。当它结束时,$rs-EOF将始终为true(否则循环就不会结束),因此条件永远不会通过

您需要在某个时间点(可能在while循环之前)进行测试,看看是否找到任何结果。如果不知道你在使用什么库,就不可能说出如何做到这一点。

在尝试循环通过结果集之前,您应该检查结果集是否为空

例如,类似这样的伪代码:

rs = sql("SELECT ...");
if (rs.isEmpty())
    print "No data";
else
{
    while (!rs.EOF())
    {
        ...
    }
}

我认为下面的代码会对你有所帮助,

<?php while (!$rs->EOF){ 
     if($rs->Fields("Branch"))
     {
      echo "<tr><td>".$rs->Fields("Branch")."</td>";
     $rs->movenext();
     }else{
      echo "<tr><td> Branch is missing</td>";
     }
}
$rs->Close();   
?>