我有一个像这样的每个循环
$sn_count = 1;
$prodfilter = "";
foreach($prods as $prod){
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
$sn_count++;
}
echo $prodfilter;
现在我的问题是我的“产品”类显示边框,即使$prod['product'][1]
不可用。所以我想用if语句测试它。
If (product value available) {
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
}
我试过这样的。
if(!empty($prod['product'][1])) {
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>";
}
但它不起作用。
答案 0 :(得分:1)
你可以尝试几件事
尝试这个开始
if(strlen(trim($prod['product'][$sn_count]))>0) {
$prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>";
}
或
if(isset($prod['product'][$sn_count])) {
$prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>";
}
答案 1 :(得分:1)
我认为正确的做法是检查返回的行数。我假设您使用的是MySQL,因为您没有指定。如果您不使用它,请寻求其他帮助。
http://www.php.net/manual/en/function.mysql-num-rows.php
if (mysql_num_rows($prods)!=0) {
//Do your code
}
这应检查您的查询是否返回超过0行(因此需要绘制)。它能解决吗?
答案 2 :(得分:0)
正确的做法是在你尝试时检查它是否为空,但由于它失败,那里显然有一些数据。你可以做一个var_dump并找出它存在的原因和原因,这可能会引导你找到问题的根源。
如果可用你的意思是声明那么isset是顺便使用的正确功能。