2013-02-10 130 views
0

如果查询结果为空,那么显示空白表或空白表的正确实现是什么?如果查询返回false,则显示空白表/空白表

**注/条件
没有页面重定向
没有建立两个表,一个用于空结果查询和一个与结果

还是有很多很多更好的方法来做到这一点查询?
这里是一个示例代码:

<?php if(isset($result)){ ?> 
<table> 
<tr> 
    <td>Name</td> 
    <td>Email</td> 
</tr> 

<?php foreach($result as $key => $data){?> 
<tr> 
    <td><?php echo $data['name'];?></td> 
    <td><?php echo $data['email_add'];?></td> 
</tr> 
<?php }?> 
</table> 
<?php } ?> 

这里的问题是,它仍然抛出的foreach循环错误。

回答

1

当查询结果返回false返回一个空数组,而不是

我希望这种帮助,并准备更多的帮助,如果需要的话

+0

谢谢所有回答的人,非常感谢。 – swordfish 2013-02-10 22:52:57

0
<?php if(isset($result) && !empty($result)): ?> 
    <table> 
    <tr> 
     <td>Name</td> 
     <td>Email</td> 
    </tr> 

    <?php foreach($result as $data): ?> 
    <tr> 
     <td><?php echo $data['name'];?></td> 
     <td><?php echo $data['email_add'];?></td> 
    </tr> 
    <?php endforeach ?> 
    </table> 
<?php else: ?> 
    No results found. 
<?php endif ?> 

请注意,我宁愿使用PHP模板的长格式语句,因为它极大地提高了可读性。

1

关于例外:

您是否$results设置,但你尝试遍历$result(无拖尾S)。我相信你有一个错字,这可能是问题的一部分。修复错字并确保结果不为空(可能已设置,但仍为空)可能会修复抛出的异常。

关于处处显示着标题:

要无论什么显示标题,只是在循环之前移动if语句。

仅供参考 - 关于格式良好的HTML表:

要声明一个表上的标题,您通常使用的<thead>元素 - 它从表中的内容分开。一个格式良好的HTML表的一个例子:

<table> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Email</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>John</td> 
      <td>[email protected]</td> 
     </tr> 
    </tbody> 
</table> 

More on formatting tables

在你的情况,我会把环路<tr>元件周围的<tbody>内。

+0

的变量将被设置,但其假! – Sedz 2013-02-10 22:22:03

+0

@Sedz添加了一个关于检查空的提示,谢谢你,虽然这还不够,因为代码仍然包含拼写错误。因此,我很难判断downvote。我所看到的信息中没有一个是不准确的?如我错了请纠正我。 – 2013-02-10 22:31:10

+1

嘿男人:),投票是为以前的答案,这个答案是非常丰富和明确 – Sedz 2013-02-10 22:35:23