2013-02-19 21 views
9

quindi ho una convalida in valori nulli utilizzando while il codice èwhile else statement? PHP

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

?> 

Quello che volevo raggiungere è quello di avere una dichiarazione di "altro", anche se so che la sua non è possibile usando il cui dichiarazione. Quale è l'equivalente di esso in dove dichiarazione?

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

?> 

Ho provato ad utilizzare "se" non ho avuto errori anche se non è stato stampato quello che volevo stampare

+1

* Quando * si desidera attivare questa condizione 'else'? Attualmente e la tua condizione 'while' sono identiche, non ha molto senso. Per favore descrivi la logica in parole. – deceze

+0

dov'è "dove dichiarazione"? –

+0

Dov'è l'istruzione 'where' sopra? – itachi

risposta

12

While-Else non esiste in php.

Si potrebbe utilizzare:

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

grazie a questo funziona bene. quindi devo usare se prima, piuttosto che il ciclo, grazie – Yinks

+0

Prego. In bocca al lupo. – Tieme

0

while (!$rs->EOF){ significa "continuare a fare questo fino a quando $rs->EOF è true". Alla fine, $rs-EOF sarà sempre true (altrimenti il ​​ciclo non sarebbe terminato), quindi il condizionale non passerà mai.

È necessario eseguire un test a un certo punto (possibilmente prima del il ciclo while) per vedere se sono stati trovati risultati. Senza sapere quale libreria stai usando, è impossibile dire come farlo.

0

si dovrebbe verificare che il risultato-set non è vuoto prima di tentare di ciclo attraverso di essa.

E.g. qualcosa di simile a questo pseudo-codice:

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

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

Penso sottostante Codice avrebbe aiutato voi,

<?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

vorrei suggerire un modo leggermente diverso per avvicinarsi a questo, fa un po 'più senso nel mio testa:

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

Penso che abbia più senso per me, perché in genere si desidera che il risultato atteso essere gestito all'interno del blocco if, e l'altro risultato (s) per essere gestiti nel blocco else.