while else语句?PHP

11

所以我有一个使用 while 语句进行 null 值验证的代码,如下:

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",虽然没有出现任何错误,但它没有打印我想要打印的内容。


1
你希望在什么时候触发这个“else”条件呢?目前它和你的“while”条件是完全一样的,这没有太多意义。请用文字描述逻辑。 - deceze
“where语句”在哪里? - Yogesh Suthar
上面的 where 语句在哪里? - itachi
我想要做的是,如果$rs的值为空,它将打印“分支丢失”,而不是什么都不打印。 - Yinks
抱歉,大家不要怪咖啡因,这是 while 而不是 where。 - Yinks
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(); 

3

我想提出一种稍微不同的方法来处理这个问题,在我的脑海中更有意义:

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

我认为这样做更有意义,因为通常你希望在if代码块中处理预期结果,而将其他可能结果处理在else代码块中。


0

while (!$rs->EOF){ 的意思是“一直执行,直到 $rs->EOFtrue”。当循环结束时,$rs-EOF 将始终为 true(否则循环不会结束),因此条件永远不会通过。

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


-1

在尝试循环遍历结果集之前,您应该检查结果集不为空。

例如,类似于以下伪代码:

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

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

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

?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接