2011-07-09 75 views
-1

我有一些if语句从我的mysql数据库读取一个变量,然后根据该变量回显出一个数字。由于某种原因,下面的代码只能回应出“1”,我不知道为什么。 ($ x是670,但它仍然回声出1)如果语句比较整数

CODE:

//connect to database and assign $x a int from database 
if ($x<=100){ 
echo 1; 
} 

if ($x>=500 && $x<1000){ 
echo 2; 
} 

if ($x>=1000 && $x<2500){ 
echo 3; 
} 

if ($x>=2500 && $x<5000){ 
echo 4; 
    } 

if ($x>=5000 && $x<7500){ 
echo 5; 
} 

if ($x>=7500 && $x<100000){ 
    echo 6; 
} 

if ($x>=10000){ 
echo 7; 
} 

编辑:我做了一些愚蠢的事在我的代码连接到数据库。还是要谢谢你的帮助。我很感激。

+0

这是真正的PHP? –

+0

@ p.campbell是sorrry – user780483

+0

您是否尝试过手动将'670'分配给'$ x'而不是从数据库中分配?试试看,这样我们就可以搞清楚了。 – dpp

回答

1

它看起来不是你期待的值(int值为670)。

  1. 小于或等于100?是:echo 1.这告诉你的确值是而不是670的数值
  2. 其余的失败布尔测试,因为他们不通过这些条件。

要解决问题,尝试:

echo $x; 

也许明确施放该值/后它出来你通话到MySQL:

$x = (int)$x; 
+0

x为670应该返回一个2. 670不小于100 – user780483

+0

@user:那你就知道我在说什么了。那么$ x没有一个670的int值。你已经证明,你的硬编码int值为670.怀疑你的数据库调用正在返回一个字符串或其他。 –

+0

但是当我回应它时,它确实如此。我试过修剪()也没有工作。 – user780483

-1

试试这个:

$x = $x + 0.0; 

    if ($x<=100){ 
    echo 1; 
    } 

    if ($x>=500 && $x<1000){ 
    echo 2; 
    } 

    if ($x>=1000 && $x<2500){ 
    echo 3; 
    } 

    if ($x>=2500 && $x<5000){ 
    echo 4; 
     } 

    if ($x>=5000 && $x<7500){ 
    echo 5; 
    } 

    if ($x>=7500 && $x<100000){ 
     echo 6; 
    } 

    if ($x>=10000){ 
    echo 7; 
    }