我正在尝试创建一个显示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
。
答案 0 :(得分:3)
这是因为您在=
测试中使用了if
符号。您应该使用==
进行比较(请注意两个等于符号。)不是比较值,而是将值赋给变量。
答案 1 :(得分:1)
你在if
声明中犯了错误;而不是使用相等比较运算符,您设置值,它也不会返回布尔值。
试试这个,而不是:
if($row['actdep'] == '00:00:00'){
答案 2 :(得分:1)
您应该使用==
或===
进行比较(后者比较类型,而不只是对值的解释):
if($row['actdep'] == '00:00:00'){
$actdep = '';
}
答案 3 :(得分:1)
将其更改为
if($row['actdep'] == '00:00:00'){
$actdep = '';
}
1等于分配2等于比较
答案 4 :(得分:0)
我宁愿将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来比较==
。