我正在搜索我的网站,我想选择包含用户搜索的单词(或单词)的数据库中的帖子。 我使用下面的代码,它的工作原理,但由于我使用LIMIT 10,它可能发生在10个选定的帖子,例如,只有2个帖子包含搜索词,所以只有2个帖子将被显示,即使有在数据库中包含搜索词的帖子更多。如何从包含特定单词的数据库中选择帖子?
$posts = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 10");
while($posts_row = mysql_fetch_assoc($posts)) {
...
$post_body = $posts_row ['post_body'];
if (strstr($post_body, $search)) {
echo $post_body;
}
...
}
有没有办法从数据库中选择包含搜索词的帖子? 类似于
$posts = mysql_query("SELECT * FROM posts WHERE strstr($post_body, $search) ORDER BY id DESC LIMIT 10");
编辑:谢谢你的帮助和建议。
数据值匹配务必阅读有关SQL注入。 [如何在PHP中防止SQL注入?](http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php) – 2013-03-15 18:02:55
在你的查询中使用LIKE。 例如。 'SELECT * FROM posts WHERE post_body LIKE%$ search%'; – 2013-03-15 18:03:43
mysql_ *函数不好!他们正在被弃用。看看mysqli或PDO – Ascherer 2013-03-15 18:14:13