Php 如何从数据库中选择包含特定单词的帖子?
我正在我的网站上搜索工作,我想从数据库中选择包含用户搜索的一个或多个单词的帖子。 我正在使用下面的代码,它是有效的,但由于我使用的是限制10,所以在10个选定的帖子中,可能会出现这样的情况,例如,只有2篇帖子包含搜索词,所以只有2篇帖子会显示,即使数据库中有更多的帖子包含搜索词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
$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_字符串?