2013-04-15 150 views
2

我想創建一個表,顯示一個MySQL查詢的輸出。但是,如果查詢的一行結果等於默認的null00:00:00那麼我想改爲顯示''。不幸的是,如果在查詢中存在00:00:00,那麼無論出於何種原因,我的代碼都會將所有條目更改爲''。我期望問題是在循環期間變量沒有被重新定義,但我不完全確定。我感謝任何幫助。 PHP腳本如下:MySql while循環來分配變量

$table = "<ul data-role='listview' data-theme='b' id='myTabDiv'>"; 
while($row = mysqli_fetch_assoc($res)){ 
    $actdep = $row['actdep']; 

    if($row['actdep'] = '00:00:00'){ 
     $actdep = ''; 
    } 

$table .= "<li><table style='table-layout: fixed; width: 100%'><tr><td>" . $actdep . "</td></tr></table></li>"; 

}; 
$table .= "</ul>"; 
echo $table; 

如果您註釋掉6號線($actdep = '';),那麼所有的值顯示,否則沒有人做。表中只有一個值的時間爲00:00:00

回答

3

這是因爲您正在使用if測試中的=符號。您應該使用==進行比較(請注意兩個等於符號。)而不是比較值,您將值賦予變量。

+0

就在我之前,+1。 – Jonast92

+0

一天中最簡單的問題! =)謝謝。 – EzAnalyst

1

您在if聲明中犯了錯誤;而不是使用相等比較運算符,您可以設置該值,該值也不會返回布爾值。 (不僅僅是價值的解釋,其中後者比較類型,也除外)

if($row['actdep'] == '00:00:00'){ 
1

您應該使用=====比較:

試試這個,而不是

if($row['actdep'] == '00:00:00'){ 
    $actdep = ''; 
} 
1

變化它到

if($row['actdep'] == '00:00:00'){ 
    $actdep = ''; 
} 

1等於是指定2等於com配對

0

我寧願把外面的PHP代碼html

<ul data-role='listview' data-theme='b' id='myTabDiv'> 
<?php 
while($row = mysqli_fetch_assoc($res)){ 
    $actdep = $row['actdep']; 

    if($row['actdep'] == '00:00:00'){ 
?> 
    <li><table style='table-layout: fixed; width: 100%'><tr><td>&nbsp;</td></tr></table></li> 
<?php 
} else { 
?> 
<li><table style='table-layout: fixed; width: 100%'><tr><td><?php echo $actdep; ?></td></tr></table></li> 
<?php } 
} 
?> 
</ul> 

我還糾正的錯誤與equal symbol
一個用來聲明變量,
二是用於等於
三是用於不同於,(你也可以用!=進行不同的比較)
所以你用雙倍來比較==