2012-10-22 45 views
0

我有以下代碼:PHP:查詢檢索第一和一些空行

while ($var1 == $var2) 
{ 
    $sql = 「SELECT disabled FROM MYTABLE WHERE VAR2=’$var2’」; 
    $r = mysql_query($sql); 
    while ($row = mysql_fetch_assoc($r)) 
    { 
     // do something 
    } 
} 

我的問題是$ SQL檢索十行:其中4有數據,其餘均爲空。

由於第一行是空的,第二行從未輸入。

但我需要它進入,我必須做什麼?

在示例代碼中,我使用MySQL,但我可以使用TSQL。

非常感謝

+0

聽起來像是有問題,因爲'mysql_fetch_assoc()'不應該返回null。 –

+0

空行不是NULL。 –

+0

這不是你真正的代碼,對吧?你的捲曲報價無處不在。這些應該是正確的''''和''' –

回答

0

您可以先檢查總行數。

while (mysql_num_rows($r) > 0 && $row = mysql_fetch_assoc($r)) 
{ 
    // do something 
} 

對不起,這將無法正常工作,請嘗試以下操作。

if(mysql_num_rows($r) > 0) { 
    while ($row = mysql_fetch_assoc($r)) 
    { 
     // do something 
    } 
} 
+0

爲什麼需要進行額外的檢查?如果沒有行被返回,那麼while循環將立即終止,因爲mysql_fetch_assoc(和類似的mysqli和PDO函數)在到達結果末尾時返回「false」 – Barmar

+0

if條件首先檢查行是否存在,如果是,則僅執行while循環 –

+0

如果不存在,也會發生同樣的情況做檢查,不是嗎? while條件立即爲假,所以它不會執行循環。 – Barmar

0

如果你有當「的mysql_query」是導致什麼問題,只是把一個條件:該擴展的

$result = mysql_query($SQL); 
while ($result && $row = mysql_fetch_array($result)) { 
    // do something 
} 

手冊上說... mysql-fetch-assoc「使用不鼓勵「