在PHP MySQL数据库中搜索价格

时间:2012-05-13 21:49:41

标签: php search

我有根据您的价格范围搜索汽车的代码:

$category = "SELECT * FROM tbl_listings WHERE price between '$c[0]' AND '$c[1]'"; 

出于某种原因,该代码不能完美运行。它向我展示了正确范围内的几辆车,但是当我在5,000到20,000之间搜索时,它还显示了一辆20万辆。

此外,当一些汽车在数据库中有一个带有美元符号的价格并且有些汽车有逗号时,搜索的好方法是什么?搜索表单不会返回任何带有美元符号或逗号的内容。

2 个答案:

答案 0 :(得分:1)

停止将价格存储为字符串?价格通常存储为以下两种类型之一:

  • 整数:分数
  • float:美元和美分,但一定要将小数位数设置为2

一个人通常不会在数据库中将价格存储为字符串(例如“$ 14,999.99”),因为您无法进行范围查询,就像您现在尝试的那样。

您也无法进行算术运算,例如总计特定汽车子集价格的查询。

如果您输入的数据已经格式化了这样的字符串,请使用NumberFormatter :: parseCurrency()从您在给DB中推送之前给出的字符串中获取浮点数。 http://php.net/manual/en/numberformatter.parsecurrency.php

答案 1 :(得分:0)

您关于

的陈述
  

有些汽车在数据库中有一个带有美元符号的价格   有逗号

让我觉得数据库中的数据类型不是numeric数据类型。这可能是一个问题,即使您的$c[0]正确是下限而$c[1]是上限。