2013-07-05 2 views
2

결과의 정렬되지 않은 목록을 출력하는 간단한 쿼리와 PHP echo 문이 있습니다.쿼리 데이터에 의존하는 목록의 if/else 문

데이터의 특정 값이있는 결과 앞에 아이콘을 표시하고 싶습니다.

이것은 내가 가지고있는 것입니다. 그러나 첫 번째 if 문은 간과 할 수 있습니다. 내 코드의 고유 오류 때문일 수 있습니다.

나는이 줄에 오류가 있다고 생각한다 : if (vopac> = 500 및 llf> = 250). 이 결과로 모든 else 데이터가 누출됩니다. 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

편집

그냥 명확히하는 데 사용할 필요가 믿는 does't 작업 시도 유형 캐스팅 , 당신이 abov를 사용해야 할 이유 e는 각 행이 객체로 반환되기 때문에 화살표 (->) 연산자를 사용하여 각 객체 memebers에 액세스합니다.

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