2011-07-09 99 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; 
    }