【发布时间】:2014-04-01 15:04:52
【问题描述】:
所以我有一个博客系统,我想为“相关新闻”建立一个部分,我不是在制作“标签”系统,而只是简单地搜索和存储文章的当前标题(从database) 并展开它以便以后能够将所有单词放入查询中,以后的查询将搜索数据库中的所有标题以找到这些单词中的任何一个,如果找到,它将返回标题列表。以下是相关代码:
// note to stackoverflow peeps, $row_object_title is just the title that is pulled form the database
$row_object_title_lower = strtolower($row_object_title);
$keywords = explode(" ",$row_object_title_lower);
稍后在页面上运行的代码:
$keywords_imploded = implode("','",$keywords);
$myquery = sql_query("SELECT object_title FROM table WHERE object_title IN ('$keywords_imploded')
现在我尝试通过打印标题来列出标题,但没有显示任何内容。
我确定数据库中有匹配的标题。
谢谢
【问题讨论】:
-
是的,在你制造出严重的噩梦injection hole之前,你会想要添加一些SQL escaping。
-
回显 $myquery 以判断出了什么问题
-
@Askanison4 显示:资源 id #17
-
您需要回显查询字符串,例如
$sql = "SELECT ...",您正在回显查询 RESULT。 -
IN 子句将在右侧的值列表中查找左侧的内容。例如: WHERE id IN (2,3,5) - 如果 id 在该列表中,它将返回 true。在你的情况下,情况正好相反。您可能必须使用以下几个来构建查询: object_title LIKE %keyword%