MySql While循环分配变量


MySql While Loop to Assign Variables

我试图创建一个表,显示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>&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来比较==