2010-09-28 72 views
0

我在SQL表中有兩個字段,donecurrent。兩者的數據都是1(是)或0(假)。在PHP中輸出錨類while()循環看起來不一致

在我while() PHP循環創建我的元素,我有以下代碼:

<a class="article <? echo $doneorcurrent ?>"</a>

的問題是,即使:

$current=mysql_result($result,$i,"current"); 
$done=mysql_result($result,$i,"done"); 

if ($done == 1){ 
$doneorcurrent = "done"; 
} 

if($current == "1"){ 
$doneorcurrent = "current"; 
}else {$doneorcurrent = "";} 

然後我用下面調用$doneorcurrent我的done字段之一有1,它從來沒有出現。我已經在代碼中使用了一段時間,並且一旦我完成了這一切,反而只會出現done,而不是current

有沒有更好的辦法,我應該這樣做?一個例子見http://www.bavarianblue.com/to-do-list/。每個任務的標題都包含在應包含currentdone的類中。正如你所看到的,在While()循環中其餘的數據輸出是正確的,所以看起來好像不對。

回答

1

你的第二個if語句總是設置$doneorcurrent要麼"current"""(空)。您可以通過使用ifelse聲明是這樣解決這個問題:

if ($done == 1){ 
    $doneorcurrent = "done"; 
}elseif($current == "1"){ 
    $doneorcurrent = "current"; 
}else { 
    $doneorcurrent = ""; 
} 

作爲一個方面說明,我真的不明白你的數據庫設計。爲什麼「完成」和「當前」存儲在不同的表中?難道它不僅僅是單個表格中單個列的標誌嗎?

+0

是啊其實它可以...'當前'是'完成'後的事情,但你是絕對正確的! – Jared 2010-09-28 18:54:37

+0

並感謝您的快速回答 - 我沒有意識到我取消了自己。 – Jared 2010-09-28 20:00:27

+0

然後不要忘記標記正確的答案。 – 2010-09-29 06:06:55