因此,我在一个站点中有多个类别,我使用foreach从数据库中提取列表。如果数据库没有要返回的内容,我试图在视图中显示什么都没返回。
视图
<?php foreach ($posts as $post): { ?>
<?php if(empty($post['title'])){
echo "Nothing found";
}else{?>
<html>
<body>
<?php echo $post['title'];?>
<?php echo $post['style'];
</body>
</html>
<?php } ?>
<?php }endforeach; ?>
因此,如果我放if(!empty())
我对CodeIgniter
还是有点新鲜,如果这是一个基本问题,请您谅解。
答案 0 :(得分:1)
做这样的事情:
if (empty($posts)) {
echo "Nothing returned.";
} else {
foreach($posts as $post) {
// Display each post
}
}
首先尝试检查$posts
中是否有任何内容,然后尝试使用foreach
使其变得自然。
答案 1 :(得分:0)
empty()返回FALSE。否则返回TRUE。
因此,如果要执行语句echo“ Nothing found”;那么您必须使用!empty(),或者也可以使用isset()函数。如果将值设置为变量,则isset()将返回True。
答案 2 :(得分:0)
尝试在isset()
条件下使用not(!)
函数
如果您使用冒号:
,请不要在{}
循环中使用大括号foreach
if(isset($posts) && count($posts) > 0){
foreach ($posts as $post){
if(!isset($post['title'])){
echo "Nothing found";
}else{?>
<html>
<body>
<?= $post['title'] ?>
<?= $post['style'] ?>
</body>
</html>
<?php } } }else{ echo 'No record found';}?>
答案 3 :(得分:0)
只需运行您的代码-您在“样式”行的末尾缺少一个封闭的php标记:
<?php echo $post['style']; ?>
或者,您可以将内容压缩如下:
echo "<html><body>";
if(empty($posts)){
echo "Nothing found";
}else{
foreach ($posts as $post){
echo $post['title'];
echo $post['style'];
}
}
echo "</body></html>";
答案 4 :(得分:0)
<?php if(empty($posts) {
echo "Nothing returned.";
} else{
foreach ($posts as $post) { ?>
<?php if(empty($post['title'])){
echo "Nothing found";
}else{?>
<html>
<body>
<?php echo $post['title'];?>
<?php echo $post['style'];
</body>
</html>
<?php } ?>
<?php } } endforeach; ?>