2012-07-19 63 views
0

我想獲得像我的$float這樣的浮點數的行。

我用這個代碼:

$float = $_GET['float']; 

$requst = mysql_fetch_array(mysql_query("SELECT * FROM floats WHERE float LIKE'$float.%%%%%%%'")); 

然後我回蕩着,同時所有行:

while ($r = $request) { 

    echo $a['float']; 

} 

但頁面不顯示任何東西。 (是的,我在地址欄中輸入?float=34,表中有漂浮物,如34.******

問題是什麼?

(PHP 5.2版,MYSQL 5.0版)

+0

請謹慎使用數據類型作爲列名稱。 – ethrbunny 2012-07-19 13:44:56

+0

這不是真名。 – theShay 2012-07-19 13:47:38

+0

你正在處理的只有一個結果,把'mysql_fetch_array'直接放在'while'裏面而不是'$ request'。 – Peon 2012-07-19 13:53:07

回答

2

嘗試這個

$requst = mysql_query("SELECT * FROM floats WHERE float LIKE'$float.%%%%%%%'"); 
while ($r = mysql_fetch_array($request)) { 

    echo $r['float']; 

} 
+0

正在工作。謝謝。 – theShay 2012-07-19 13:50:50

+0

沒問題...... – 2012-07-19 13:52:08

1

您的變量已經有一個小數點。

"SELECT * FROM floats WHERE float LIKE '$float%'"

如果你的持股量34.567您的語句執行爲找到像'34 0.567%」,這是沒有找到任何結果。

編輯: 這樣呢?

"SELECT * FROM floats WHERE abs(float-$float)<1;"

這將在什麼範圍內1帶來了什麼?

話雖如此,儘管你可以在mysql中保持浮動,但將它們保留爲小數點後有限數量的小數點可能更安全。

+0

沒有。在地址欄中輸入'?float = 34'而不是'?float = 34.' – theShay 2012-07-19 13:46:33

2

如何select * from floats where floor(float) = $floor;

+0

另外,試着正確地連接你的查詢字符串,如下所示:「select * from floats where floor(float)=」。$ floor – 2012-07-19 13:48:40

+0

我假設它是某種準備好的語句... – ethrbunny 2012-07-19 13:51:09

+0

但我需要'LIKE' – theShay 2012-07-19 13:52:00