2

結果の順序付けられていないリストを出力する単純なクエリとphp echoステートメントがあります。

データから特定の値がある結果の前にアイコンを表示したい。

これは私が持っているものですが、おそらく私のコードに固有のエラーが原因で、最初の if ステートメントが見落とされています。

エラーは次の行にあると思います: if (vopac >= 500 and 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>";
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 に答える