Php 如何从数据库中选择包含特定单词的帖子?

Php 如何从数据库中选择包含特定单词的帖子?,php,sql,Php,Sql,我正在我的网站上搜索工作,我想从数据库中选择包含用户搜索的一个或多个单词的帖子。 我正在使用下面的代码,它是有效的,但由于我使用的是限制10,所以在10个选定的帖子中,可能会出现这样的情况,例如,只有2篇帖子包含搜索词,所以只有2篇帖子会显示,即使数据库中有更多的帖子包含搜索词 $posts = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 10"); while($posts_row = mysql_fetch_assoc($p

我正在我的网站上搜索工作,我想从数据库中选择包含用户搜索的一个或多个单词的帖子。 我正在使用下面的代码,它是有效的,但由于我使用的是限制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");

编辑:感谢您的帮助和建议。

试试这个在MySQL中测试过的,我不确定其他人:

"SELECT * FROM posts WHERE post_body LIKE ( '%".$search."%' ) ORDER BY id DESC LIMIT 10"

请尝试在MySQL中测试,我不确定其他人:

"SELECT * FROM posts WHERE post_body LIKE ( '%".$search."%' ) ORDER BY id DESC LIMIT 10"
你可以利用喜欢做这个搜索

SELECT * FROM posts WHERE post_body LIKE ('%?%') ORDER BY id DESC LIMIT 10;
这里的post_body将是存储post内容的任何文件,以及?将替换为您的搜索字符串。

您可以使用“喜欢”进行此搜索

SELECT * FROM posts WHERE post_body LIKE ('%?%') ORDER BY id DESC LIMIT 10;

这里的post_body将是存储post内容的任何文件,以及?将替换为您的搜索字符串。

您可以将其用作查询:

SELECT * FROM posts WHERE $post_body like '%$search%' ORDER BY id DESC LIMIT 10
这可能是非常有限和缓慢的。根据应用程序的大小和数据量,您可能需要进行全文搜索。

您可以将其用作查询:

SELECT * FROM posts WHERE $post_body like '%$search%' ORDER BY id DESC LIMIT 10
这可能是非常有限和缓慢的。根据应用程序的大小和数据量,您可能需要进行全文搜索。

首先:不要使用mysql-它已被弃用,出于安全原因正在逐步淘汰。改用mysqli_u

第二:使用“like”这样做:

SELECT * FROM tableName WHERE columnName LIKE '%keyword%';

将在“关键字搜索很有趣”以及“查找此关键字”和“所有关键字都是单词”的数据值中查找匹配项。

首先:不要使用mysql-它已被弃用,出于安全原因正在逐步淘汰。改用mysqli_u

第二:使用“like”这样做:

SELECT * FROM tableName WHERE columnName LIKE '%keyword%';

将在“关键字搜索很有趣”以及“查找此关键字”和“所有关键字都是单词”的数据值中查找匹配项。

请务必阅读有关sql注入的内容。在查询中使用LIKE。例如,“从post_body LIKE%$search%的帖子中选择*”;mysql_*函数不好!他们正被弃用。看看mysqli或PDO@axrwkrstrip_标记可以防止SQL注入吗?还是我需要使用mysqli_real_escape_字符串?请务必阅读有关SQL注入的内容。在查询中使用LIKE。例如,“从post_body LIKE%$search%的帖子中选择*”;mysql_*函数不好!他们正被弃用。看看mysqli或PDO@axrwkrstrip_标记是否有助于防止SQL注入,还是需要使用mysqli_real_escape_字符串?