2

我正在尝试创建一个显示 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

4

5 回答 5

3

这是因为您=在测试中使用了该符号if。您应该使用==比较(注意两个等号。)而不是比较值,而是将值分配给变量。

于 2013-04-15T15:41:06.320 回答
1

你的if陈述有误;而不是使用相等比较运算符,您设置值,它也不会返回布尔值。

试试这个,而不是:

if($row['actdep'] == '00:00:00'){
于 2013-04-15T15:41:35.423 回答
1

您应该使用==or===进行比较(后者也比较类型,而不仅仅是对值的解释):

if($row['actdep'] == '00:00:00'){
  $actdep = '';
}
于 2013-04-15T15:41:48.503 回答
1

将其更改为

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

1 等于分配 2 等于比较

于 2013-04-15T15:41:55.220 回答
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>&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
一个用于声明变量,
两个用于等于
三个用于不同,(您也可以!=用于不同的比较)
,因此您可以使用 double 来比较==

于 2013-04-15T15:44:15.963 回答