返回包含php字符串中文本的sql记录
因此,有人回答了我的问题,即如果sql数据库包含字符串中的任何文本,则从该数据库中获取记录。无论我的字符串是否包含逗号,它都可以正常工作,sql数据库中的每条记录也是如此 有没有办法跳过数据库中的逗号,只检查逗号前后的单词 例如:返回包含php字符串中文本的sql记录,php,mysql,Php,Mysql,因此,有人回答了我的问题,即如果sql数据库包含字符串中的任何文本,则从该数据库中获取记录。无论我的字符串是否包含逗号,它都可以正常工作,sql数据库中的每条记录也是如此 有没有办法跳过数据库中的逗号,只检查逗号前后的单词 例如: $tags = "rock,pop,indie,alternitive rock, drum and bass"; $tags = explode(' ', $tags); $tags = implode("%' OR `tags` LIKE '%", $tags);
$tags = "rock,pop,indie,alternitive rock, drum and bass";
$tags = explode(' ', $tags);
$tags = implode("%' OR `tags` LIKE '%", $tags);
$thetags = explode(' ', $thetags);
$result1 = mysql_query("SELECT * FROM `Stations` WHERE `tags` LIKE '%$tags%'" );
我只希望它检查记录并返回逗号内的文本结果。就像我现在搜索记录一样,它会返回所有结果,因为它们都包含逗号/空格
希望这是有意义的。
杰米如果我理解正确,你可以通过做一些小改动来实现:
<?php
$tags = "rock,pop,indie,alternitive rock,drum and bass";
$tags = addslashes($tags);
$tags_array = explode(',', $tags);
$tags_search = implode("%' OR `tags` LIKE '%", $tags_array);
$tags_query = "SELECT * FROM `Stations` WHERE `tags` LIKE '%".$tags_search."%'";
?>
如果DB中的站点每个站点只有一个流派标记,那么您可以使用MYSQL in子句,如下所示。我刚刚使用str_replace()在标记列表周围添加了单引号,以便为IN子句做好准备
$tags = "rock,pop,indie,alternitive rock, drum and bass"; // from your post
$list = "'" . str_replace(",", "','", $tags) . "'"; // add single quotes to tags
$sql = "SELECT * FROM `Stations` WHERE `tags` IN (".$list.")"; // build query
$result1 = mysql_query($sql);
相关人员:嗨,谢谢你的帮助。我有一个非常奇怪的问题,虽然它似乎工作,但对于一些标签,它返回0结果。是这样吗$tags=“电子、住宅、舞蹈、电子、科技”$list=“””。str_替换(“,”,“,”,“,”,$tags)。"'"; $result1=mysql_query(“SELECT*FROMStations
WHEREtags
IN(“.$list”)”)$num_rows1=mysql_num_rows($result1);echo$num_行1;在我看来,它应该返回18条记录。Jamie如果看不到数据,很难判断发生了什么。每个记录都有一个标签吗?也许可以尝试删除标记列表末尾的逗号。我们能在网上看到什么吗?