在我正在处理的项目中,我需要一些帮助。在不知道用户输入是什么的情况下进行查询(SQL,PHP)
这里是我想要做的事:
我与MySQL和PHP网页上的工作。有一个输入字段,用户将输入一个位置(国家,城市,州),日期,比赛长度或比赛名称。问题是,他们可以输入这些项目的任何组合(就像你可以在谷歌中)。
之后,我必须查询数据库才能显示结果。这是我现在使用的查询:
LIKE '$str%'
OR city LIKE '$str%'
OR state LIKE '$str%'
OR country LIKE '$str%'
OR race_distancia LIKE '$str%'
$ str是一个持有输入文本的php变量。
我正在使用'$ str%',因为它会使用我创建的索引,尽管由于正则表达式在最后添加了,因此无法正常工作。所以如果我输入例如:'迈阿密5k',它将不起作用。由于没有比赛被称为迈阿密5K,也没有一个位置......但是迈阿密有5克赫赫。
我在想空间上的输入文本爆炸和每个爆炸项目运行查询,然后删除重复的结果。这将工作,但我试图找到最有效的解决方案,我不确定如何避免重复的项目。
感谢先进!
首先使用类似PDO(PHP数据库对象)来准备查询以防止SQL注入。 – 2012-03-29 20:22:14
这些似乎相当定义的搜索条件,我会有一个国家的框,然后一个城市的框....可能有一个列表中的一些和他人的自由文本 – 2012-03-29 20:22:27
如果空间爆炸将无法如果有一个两个字的城市。此外,如果有人搜索一个也是州名的城市,IE“纽约纽约”,您的查询将无法按预期进行。 – Norse 2012-03-29 20:40:33