我有一个这样的数据库:
id | link | someotherstuff
---------------------------------------------------------
1 | index.php?video=123 | blah
2 | index.php?video=4567&other=variable | blah
3 | site.com/index.php?video=video=1 | blah
等等。 我想使用URL参数来查找正确的视频链接。 当我访问时:www.mysite.com/index.php?video = 1我希望数据库找到链接列的“video = 1”部分。我有一切工作,除了搜索链接列时,它找到id 1和id 3,因为它们都在链接中有数字1。
我正在使用Piwik获取我的网页统计信息。我使用会话从网址获取视频编号,然后使用:
$videostring = "video%3D".$_SESSION['video']."";
用这个:
$resulting = file_get_contents("http://www.site.com/piwik/?module=API&method=Actions.getPageUrls&idSite=1&period=range&date=2013-04-05,today&format=php&expanded=1&token_auth=$token_auth&filter_pattern=". $videostring . "");
如何使用filter_pattern以便我可以将搜索范围限制为我想要的数字?
答案 0 :(得分:0)
select id from table where link like '%video=1' OR link like '%video=1?%'
使用编辑:
如果你的服务器在filter_pattern的值之前和之后放置%来进行过滤,则不能这样做。检查服务器端代码,看看它在调用mysql之前对filter_pattern变量做了什么。
答案 1 :(得分:0)
我认为除了在id
地址中使用link
值之外,没有其他方法,例如site.com/index.php?video?video=1&id=3
。因此,您无需搜索数据库以查找id
。它位于您的地址