php搜索模块

php搜索模块,php,mysql,search,content-management-system,Php,Mysql,Search,Content Management System,我需要你的帮助为我的网站创建搜索结果页面。它是一个简单的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 ($r

我需要你的帮助为我的网站创建搜索结果页面。它是一个简单的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 />';  
    }
我想做的不是显示整个页面内容,而是显示任何单词与搜索词匹配的行。。。或者只是找到搜索词的页面的前几行


朋友们,你能帮我做这个吗?这将是一个很大的帮助。。。谢谢

您可以在$row[PageContent]上运行后期处理

差不多

while ($row = mysql_fetch_array($searchresult)) 
{
    echo '<h3>' . $row["PageTitle"] . '</h3>';

    $position = strpos($row["PageContent"], $search);
    $snippet = substr($row["PageContent"], $position - 100, $position + 100);

    echo '<p>' . $snippet . '</p>';
    echo '<br /><br />';  
}
其中,代码段从匹配术语的开头开始100个字符,在术语的开头之后100个字符结束。很明显,你可以根据自己的喜好来调整,但这是最基本的想法


如果我错过了要点,请告诉我,我可能会更新。

欢迎使用Stack Overflow!请不要使用mysql函数来编写新代码。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果您选择PDO,那么您的代码对SQL注入非常开放。请澄清:您的查询返回多行字符串,并且您希望从匹配的字符串中选择一行。听起来像是一个类似grep命令的工作…为什么你有searchresult和searchcontent?哪一个是对的?沃克在他的评论中涵盖了这一切。切换到mysqli或PDO并使用准备好的语句。切换并不难。事实上,只要忘掉你所知道的关于mysql_uu函数的一切,没问题。您还可以使用strpos strrpos的变体作为最后一次出现,等等,将字符串切碎,例如句子开头、整个单词等等,这样您就不会出现奇怪的句子片段。。。写一本书的方法。。。明白我的意思吗?你应该使用strpos,如果你被卡住了,就在上面发布一个新问题,关于如何确保你的代码片段被修剪成一个人类可读的句子。