2013-02-19 60 views
9

所以我在使用空值的驗證while語句代碼while else statement? PHP

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

?> 

我想實現是有一個「其他」的聲明,雖然我的不能使用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(); 

?> 

我試圖用「如果」我沒有得到任何錯誤,雖然它沒有打印的內容我想打印

+1

*當你想觸發這個'else'條件嗎?目前它和你的'while'條件相同,沒有多大意義。請用文字描述邏輯。 – deceze 2013-02-19 07:11:09

+0

哪裏是where語句? – 2013-02-19 07:11:52

+0

上面的where語句在哪裏? – itachi 2013-02-19 07:12:29

回答

12

While-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(); 
+0

謝謝這個工作出色罰款。所以我要使用,如果首先,而不是循環謝謝你 – Yinks 2013-02-19 07:21:51

+0

不客氣。祝你好運。 – Tieme 2013-02-19 07:23:26

0

while (!$rs->EOF){意思是「這樣做,直到$rs->EOFtrue扛」。當它結束時,$rs-EOF將始終爲真(否則循環不會結束),所以條件永遠不會通過。

您需要在某個點(可能是之前環路while環路)進行測試以查看是否找到任何結果。不知道你在使用什麼庫,不可能說如何做到這一點。

0

您應該檢查結果集是不是空通過它試圖循環。

E.g.像這樣的僞代碼:

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

?> 
1

我想提出一個稍微不同的方式來處理這一點,它使更多的意義上我頭:

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

我認爲它使我更有意義,因爲你通常希望自己的預期結果被if塊內處理,而其他的結果(S)在else塊來處理。