2015-05-19 4 views
2

Im пытается показать разные цвета в зависимости от двух значений.Сравнение значений не работает должным образом

Прежде всего, если значения равны, то показывают зеленый цвет, который прекрасно работает

<?php if (miletofurlong($pasthorse['distance']) == $todaysdistance) 
    { 
     $Horsedist = "<b><span style='color:#ff4500 '>". miletofurlong($pasthorse['distance'])."f</span></b>"; 
    } ?> 

Теперь то, что я пытаюсь сделать, если miletofurlong($pasthorse['distance']) не равно, но до сих пор между ($ todaysdistance + 1) и ($ todaysdistance + 1), затем выделите его синим цветом.

Я побежал следующий код, но он, кажется, чтобы выделить все, и я не уверен, почему

if (miletofurlong($pasthorse['distance']) == $todaysdistance) 
    { 
    $Horsedist = "<b><span style='color:#ff4500 '>". miletofurlong($pasthorse['distance'])."f</span></b>"; 
    } 
    elseif (miletofurlong($pasthorse['distance']) !== $todaysdistance and miletofurlong($pasthorse['distance']) <= ($todaysdistance + 1) or miletofurlong($pasthorse['distance']) !== $todaysdistance and miletofurlong($pasthorse['distance']) >= ($todaysdistance - 1) ) 
    { 
    $Horsedist = "<b><span style='color:blue'>". miletofurlong($pasthorse['distance'])."f</span></b>". ($todaysdistance + 1). "and" . ($todaysdistance - 1); 
    } 
    else 
    { 
    $Horsedist = miletofurlong($pasthorse['distance'])."f" ; 
    } 

screenshot of the output

+0

Вы правильно проверяете эту часть? * ", но все еще между ($ todaysdistance + 1) и ($ todaysdistance + 1)" * Как может быть что-то между двумя номерами, которые одинаковы? –

+0

Возможно, это поможет вам вместо второго условия elseif ((miletofurlong ($ pasthorse ['distance'])! == $ todaysdistance && miletofurlong ($ pasthorse ['distance']) <= ($ todaysdistance + 1)) || (miletofurlong ($ pasthorse ['distance'])! == $ todaysdistance && miletofurlong ($ pasthorse ['distance'])> = ($ todaysdistance - 1))) –

ответ

2

Вы упускаете круглые скобки, и ваш случай, если немного грязный. Давайте сначала используем переменную и объявим ваш $ pasthorse внутри.

$distance = miletofurlong($ pasthorse['distance']); 
if ($distance == $todaysdistance) 
    $Horsedist = "<b><span style='color:#ff4500 '>". $distance ."f</span></b>"; 
else if ($distance <= ($todaysdistance + 1) and $distance >= ($todaysdistance - 1) ) 
    $Horsedist = "<b><span style='color:blue'>". $distance . "f</span></b>" ($todaysdistance + 1). "and" . ($todaysdistance - 1); 
else 
    $Horsedist = $distance ."f" ; 

Там он должен работать лучше, и это более читаемо.

Смежные вопросы