2013-02-23 2 views
0

У меня есть некоторые данные, выводимые через PHP/MySQL. Это просто список китайских иероглифов, который соответствует определенной строке.PHP, изменяющий вывод строки на основе другого столбца

$i = 0; 

while ($i <= $x) { 
    echo "<div class=\"char-option\"><a href=\"character.php?char=" . $results[$i]['id']. "\">" . $results[$i]['mainchar'] . "</a></div>"; 
    $i++; 
} 

У меня есть еще одна строка с рейтингом персонажа, около 20% персонажей имеют рейтинг. Я бы хотел:

  1. Измените класс на "char-option char-common" для персонажа с самым высоким рейтингом.
  2. Не изменяйте класс, если ни один из символов не имеет ранжирования.

Заранее спасибо.

+1

Как вы определяете «рейтинг»? –

ответ

1

Шаг 1: Определите, какой персонаж имеет наивысший ранг.

$high = -1, $hrank = 0; 
for($i = 0; $i <= $x; ++$i) { 
    if(isset($results[$i]['rank']) && $hrank < $results[$i]['rank']) { 
     $high = $i; 
     $hrank = $results[$i]['rank']; 
    } 
} 

Шаг 2: С информацией, которая имеет самый высокий рейтинг символов, мы можем определить, кто получает нормальный класс, который получает дополнительный класс.

for($i = 0; $i <= $x; ++$i) { 
    $class = "char-option"; //Default class 
    if($i == $high) $class .= " char-common"; //Adds the second class for the highest ranked character. 
    echo "<div class=\"$class\"><a href=\"character.php?char=" . $results[$i]['id']. "\">" . $results[$i]['mainchar'] . "</a></div>"; 
} 

-1 в $high убеждается, что класс не будет изменен, если не является ранжирование где-то в списке.

0

Установите свой рейтинг в результатах и ​​сделайте это.

$i = 0; 
while ($i <= $x) { 
    if ($results[$i]['highest_ranking'] == 1) { 
    $class = "char-option char-common"; 
    } else { 
    $class = "char-option"; 
    } 
    echo "<div class=\"$class\"><a href=\"character.php?char=" . $results[$i]['id'] . "\">" . $results[$i]['mainchar'] . "</a></div>"; 
    $i++; 
} 
Смежные вопросы