MySql While Loop to Assign Variables

时间:2013-04-15 15:38:50

标签: php while-loop variable-assignment

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

5 个答案:

答案 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>&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来比较==