如果语句比较整数

时间:2011-07-09 03:04:05

标签: php

我有一些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;
 }

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

3 个答案:

答案 0 :(得分:1)

看来它不是您期望的值(int值为670)。

  1. 小于还是等于100?是:echo 1.这告诉您确实值不是int值670
  2. 其余的未通过布尔测试,因为他们没有通过这些条件。
  3. 要进行问题排查,请尝试:

    echo $x;
    

    也许明确地将该值转换为/在您调用MySQL之后:

    $x = (int)$x;
    

答案 1 :(得分:-1)

如果这确实是php,那么$ x肯定不是670。

See example here

Coudl你提供了从DB读取x的代码吗?

答案 2 :(得分:-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;
     }