2012-07-19 61 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