11

所以我使用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();   

?>

我尝试使用“如果”我没有收到任何错误,尽管它没有打印我想要打印的内容

4

5 回答 5

15

php 中不存在 While-Else。

你可以使用:

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(); 
于 2013-02-19T07:13:17.710 回答
2

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

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

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

于 2017-05-08T12:24:37.663 回答
0

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

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

于 2013-02-19T07:12:00.127 回答
-1

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

例如像这样的伪代码:

rs = sql("SELECT ...");

if (rs.isEmpty())
    print "No data";
else
{
    while (!rs.EOF())
    {
        ...
    }
}
于 2013-02-19T07:13:39.503 回答
-1

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

<?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();   

?>
于 2013-02-19T07:18:22.813 回答