我试图创建一个表,显示mysql查询的输出。但是,如果查询的一行结果等于默认的null
00:00:00
,那么我想显示''
。不幸的是,如果查询中存在任何00:00:00
,我的代码出于某种原因将所有条目更改为''
。我预计问题是变量在循环期间没有被重新定义,但我不完全确定。谢谢你的帮助。PHP脚本如下:
$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
。
这是因为您在if
测试中使用了=
符号。您应该使用==
进行比较(注意两个等于符号)。不是比较值,而是将值赋给变量
您应该使用==
或===
进行比较(后者也比较类型,而不仅仅是对值的解释):
if($row['actdep'] == '00:00:00'){
$actdep = '';
}
改为
if($row['actdep'] == '00:00:00'){
$actdep = '';
}
1 =表示赋值,2 =表示比较
您在if
声明中犯了一个错误;不使用相等比较操作符,而是设置值,该值也不会返回布尔值。
试试这个:
if($row['actdep'] == '00:00:00'){
我宁愿把html
代码放在php之外
<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> </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
的错误
一个用于声明变量,
两个用于等于,
三个用于不同于,(你也可以!=
进行不同的比较)
所以你必须使用double来比较==
。