2

我有一个简单的查询和 php echo 语句,它输出一个无序列表的结果。

我想在数据中有一定值的结果前面显示一个图标。

这就是我所拥有的,但第一个 if 语句被忽略了,大概是因为我的代码中存在固有错误。

我相信错误存在于这一行:if (vopac >= 500 and llf >= 250)。这样做的结果是吐出所有其他数据。if 语句的逻辑是正确的,但是除非它们是声明的变量,否则我不能在 PHP 中使用这些值吗?

$query = "SELECT b.cb_professionalname as name, b.cb_2013vopac as vopac, b.cb_2013llf as llf
from jos_comprofiler b, jos_users a
where a.id = b.user_id
and a.block=0
order by lastname";
$db->setQuery( $query ); 
$result = $db->loadObjectList(); 

echo "<ul  class='columns'>";
foreach($result as $row) 
  if (vopac >= 500 and llf >= 250)  {
    echo "<li><img src='images/icons/medal_gold_1.png' title='Gold Status'>$row->name</li>";
  } else { 
    echo "<li>$row->name</li>";
  }
echo "</ul>";
4

2 回答 2

1

我相信你需要使用$row->vopac$row->llf

编辑

澄清一下,您需要使用上述内容的原因是因为每一行都作为一个对象返回,因此您将使用箭头 (->) 运算符访问每个对象成员

于 2013-07-05T14:55:46.737 回答
0
foreach($result as $row)  {
if ($row["vopac"] >= 500 and $row["llf"] >= 250)  {
echo "<li><img src='images/icons/medal_gold_1.png' title='Gold Status'>$row->name</li>";
} else { 
echo "<li>$row->name</li>";
}
}

如果这不起作用,请尝试类型转换

if ((int)$row["vopac"] >= 500 AND (int)$row["llf"] >= 250){
于 2013-07-05T14:55:38.043 回答