【发布时间】:2013-02-13 20:11:20
【问题描述】:
在为我的网站创建搜索结果页面时,我需要您的帮助。它是一个简单的 php cms 站点,只是从 mysql 中获取内容。 使用简单的查询来获取搜索
$search = $_GET["search"];
$search = preg_replace('#[^0-9]#i','',$_GET['search']);
$searchresult = mysql_query ("SELECT * FROM pages WHERE pgcontent LIKE '%$search%'");
while ($row = mysql_fetch_array($searchresult))
{
echo '<h3>' . $row["PageTitle"] . '</h1>';
echo '<p>' . $row["PageContent"] . '</p><br /><br />';
}
我想要做的不是显示整个页面内容,而是显示任何单词与搜索词匹配的行......或者只是找到搜索词的页面的前几行。
朋友们能帮我做这件事吗?这将是一个很大的帮助......谢谢你
【问题讨论】:
-
欢迎来到 Stack Overflow!请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你选择 PDO here is a good tutorial. -
您的代码对 SQL 注入非常开放。
-
只是为了澄清:您的查询返回多行字符串,并且您想从该字符串中选择匹配的一行。听起来像
grep这样的命令的工作...... -
为什么会有
searchresult和searchcontent?哪个是对的? -
War10ck 在他的评论中涵盖了这一切。切换到 mysqli 或 PDO 并使用准备好的语句。切换并不难。事实上,只需忘掉你所知道的关于 mysql_ 函数的一切。
标签: php mysql search content-management-system