如果数据不存在,则隐藏表行


Hide table row if data doesn't exist

如果自定义字段中没有数据,我想知道是否有一个代码可以用来防止表行形成。

例如这是我的表:

        <tr>
            <td><?php echo $place_1; ?></td>
            <td><?php echo $person_1; ?></td>
            <td><?php echo $status_1; ?></td>
            <td><a href="<?php echo $website_1; ?>"></a></td>
        </tr>
        <tr>
            <td><?php echo $place_2; ?></td>
            <td><?php echo $person_2; ?></td>
            <td><?php echo $status_2; ?></td>
            <td><a href="<?php echo $website_2; ?>"></a></td>
        </tr>
        <tr>
            <td><?php echo $place_3; ?></td>
            <td><?php echo $person_3; ?></td>
            <td><?php echo $status_3; ?></td>
            <td><a href="<?php echo $website_3; ?>"></a></td>
        </tr>

我怎么能使它"如果$place_2是空的,隐藏所有的表行2和3?"

任何帮助都是感激的!

您可以简单地使用PHP只输出非空的行:

...
</tr>
<?php if ($place_2 != "") { ?>
<tr>
    <td><?php echo $place_2; ?></td>
    <td><?php echo $person_2; ?></td>
    <td><?php echo $status_2; ?></td>
    <td><a href="<?php echo $website_2; ?>"></a></td>
</tr>
<?php } ?>
<tr>
...

这种方法将tr元素封装在if块中。还有其他很多方法可以达到同样的结果,这可能会出现在其他答案中。从你的问题看来,当$place_2空的时候,你也要抑制$place_3。我假设在这种情况下$place_3将为空,因此您可以对tr元素应用相同的方法,将$place_2替换为$place_3

也可以使用WHILE循环。这将适用于任何数量的行。只需将4替换为While条件

中要检查的行数
<?php
 $i=0;
 while($i<4)
 {
   if($place_.$i == "")
      break; // if $place_ variable is empty no further rows are printed.
   else
   {
?>
    <tr>
        <td><?php echo $place_.$i; ?></td>
        <td><?php echo $person_.$i; ?></td>
        <td><?php echo $status_.$i; ?></td>
        <td><a href="<?php echo $website_.$i; ?>"></a></td>
    </tr> 
<?php
   } // closing bracket of else
  $i = $i + 1;
 } //end of while loop
?>