2010-03-19 117 views
0

我有一個while循環中的表格視圖,用戶可以在其中查看圖書信息。PHP IF語句不考慮變量!

例如,本書的ISBN,書名,讀取狀態...

基本上,當用戶將他們的「readstatus」到「完成」我想要那個特定的錶行變成灰色!其中的邏輯是非常簡單的,但是我不能讓我的IF語句認識到這一點:

if ($readstatus == 'complete') { 
         echo '<tr class="completed">'; 
       } 

        else if ($readstatus != 'complete') { 
         echo '<tr class="reading">'; 
       } 

我明明在這裏做得不對,表的內容改變,如果「readstatus」 =「的值完成」,如果沒有,那麼輸出是默認

+0

這不是回答這個問題,但是你同樣在做'if(a){...} else {...}',沒有測試顯然會返回true。 – xtofl 2010-03-19 12:54:10

+0

你是否在循環中有if語句,或者如上所述,在'$ readstatus = $ _GET ['readstatus'];'之下? – 2010-03-19 12:54:43

+0

'if'語句應該至少輸入其中一個條款;哪一個進入? – xtofl 2010-03-19 12:55:49

回答

1

?這些信息是來自HTML表單還是URL等等?

我懷疑你的意思是把$readstatus = $_GET['readstatus'];更改爲$readstatus = $row['readstatus'];

$_GET是來自query string的GET參數的一部分。

$row$row是數據庫中的一行,所以如果信息在數據庫中 - 我猜想它是 - 您想要使用$row而不是$_GET

+0

感謝您:D – Jess 2010-03-19 12:59:11

1

試試你爲什麼要使用$_GET改變$readstatus = $_GET['readstatus'];$readstatus = $row['readstatus'];

+0

感謝您的幫助:D – Jess 2010-03-19 12:58:46

0

$ _GET函數依賴於包含在URL的查詢字符串中的值,它與數據庫無關。我有一個預感,你試圖從數據庫中獲取價值,並且你使用錯誤的函數來完成它。

+0

' $ _GET'雖然不是一個函數;) – 2010-03-19 12:57:52

0

$_GET['readstatus']表示該值來自瀏覽器。 $row['readstatus']表示該值來自數據庫。

您需要決定哪個應該優先 - 可能是$ _GET ['readstatus']`因爲這是用戶想要更改。如果是這種情況,則需要在爲數據集重新查詢數據庫之前使用新的readstatus更新數據庫。