我认为这是一个简单的问题。但是,我不知道如何解决这个问题。我把我的代码贴在下面。在下面的代码中,if else语句总是显示No Sarees
。我得到了mysql表的结果,但它总是显示与No Sarees
文本。我已经使用var_dump($categories)
检查了这一点,它返回array(0){}
。我该如何解决这个问题?
<?php if ($categories) { ?>
<!--BOF Refine Search Result-->
<div class="refine-search-result">
<?php if (count($categories) <= 5) { ?>
<?php foreach ($categories as $category) { ?>
<div class="refine-block">
<p><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></p>
</div>
<?php } ?>
<?php } else { ?>
<?php for ($i = 0; $i < count($categories);) { ?>
<?php $j = $i + ceil(count($categories) / 4); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($categories[$i])) { ?>
<div class="refine-block">
<p><a href="<?php echo $categories[$i]['href']; ?>"><?php echo $categories[$i]['name']; ?></a></p>
</div>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<div class="clear"></div>
</div><!--EOF Refine Search Result-->
<?php } else {
?>
<div class="refine-search-result">
<div class="refine-block">
<p><a href="javascript://" style="cursor:default">No Sarees</a></p>
</div>
<div class="clear"></div>
</div>
<?php } ?>
如果你的$categories
是空数组,那么在if($categories)
你的数组被转换为布尔值。如果它是空数组(你说它是),那么它将被转换为false
。
检查:
$categories = array(); //empty array
var_dump((boolean)$categories); //this will show what variable will look like after converting to boolean value
if ($categories){
echo '$categories IS NOT empty';
}else{
echo '$categories IS empty';
}