2015-05-19 156 views
2

我试图根据这两个值显示不同的颜色。值比较不能按预期工作

的所有如果值是相等的,那么首先显示绿色,工作正常

<?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" ; 

在那里,它应该工作得更好,而且更具可读性。