继我上一期提问:
我现在正在使用声明:
if (isset($_GET['url'])) {
$url = $_GET['url'];
}
SELECT name, url FROM table WHERE species LIKE '%$url%'
species
可能包含"Brown & Rainbow Trout, Pike"
然而,我说布朗特劳特的网址是:/fishing/browntrout/
这基本上可以防止上述陈述返回任何结果。
显然它适用于:/fishing/pike/
,但不适用于有2个名字的鱼。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
尝试制作网址/fishing/brown_trout/
。然后尝试这样的事情:
if (isset($_GET['url'])) { // "brown_trout"
$url = str_replace('_', '%', $_GET['url']); // "brown%trout"
}
SELECT name, url FROM table WHERE species LIKE '%$url%'
这将进行查询:
SELECT name, url FROM table WHERE species LIKE '%brown%trout%'
哪个应该有用。