2013-02-19 3 views
9

Так у меня есть подтверждение в нулевых значений, используя в то время как оператор кодв то время как другое заявление? PHP

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

?> 

То, что я хотел добиться того, чтобы иметь «еще» заявление, хотя я знаю, что его не представляется возможным, используя где заявление. Какой из них эквивалентен в заявлении?

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

+0

где 'where statement'? –

+0

Где находится инструкция 'where' выше? – itachi

ответ

12

В то время как 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

+0

Добро пожаловать. Удачи. – Tieme

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... 
} 

Я думаю, что это имеет смысл для меня, потому что вы вообще хотите, чтобы ваш ожидаемый результат будет обрабатываться в пределах, если блок, а другой результат (ы), которые будут обрабатываться в блоке еще.

Смежные вопросы