2013-07-05 52 views
2

我有一個簡單的查詢和PHP回聲語句,輸出一個無序的結果列表。列表中的if/else語句取決於查詢數據

我想在結果前面顯示一個圖標,其中數據有一定的值。

這是我的,但第一個if語句被忽略了,大概是因爲我的代碼中有一個固有的錯誤。

我相信錯誤駐留在這一行:if(vopac> = 500和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>"; 
+0

vopac和llf是什麼類型的數據?如果你把這些值放在引號中怎麼辦? – johnny

回答

1

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

編輯

只是爲了澄清,你需要使用abov的原因e是因爲每一行都作爲一個對象返回,因此您可以使用箭頭( - >)來訪問每個對象成員操作符

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){