繁体   English   中英

MySQL搜索和PHP结果

[英]MySQL search and PHP results

我是PHP的新手,正在尝试制作一个基本的搜索引擎。 每次搜索之后,我想在HTML页面中显示结果摘要,其中包含所有满足查询条件的项目。 每个项目摘要还应提供指向特定HTML页面的链接,其中包含有关该项目的详细信息(每个项目的页面)。 例如,这与stackoverflow或google或任何其他搜索引擎非常相似。

这可以用PHP制作吗?

我发现做到这一点的唯一方法是,使用摘要代码页的这种搜索(并且它可以正常工作)为每次搜索自动生成HTML摘要代码(我必须做类似的事情才能生成HTML页):

<?php
function frontPagePresentation($theFirstName,$theLastName,$theUserName,$theSummary)
{

    $fileName='ShowSearch'.$theUserName.'.html';

    $theHTML="profileO".$theUserName.".html";

    $theLinkText=$theFirstName." ".$theLastName;

    $theFigureName="/NetBeansProjects/NewPhpProject/photos/".$theUserName;

    $thePos=strpos($theSummary, ' ', 200);
    $theSummary=substr($theSummary,0,$thePos); 
    $theSummary=": ".$theSummary;



    //$file = fopen(,"w");

    $str1="<table border=\"0\" width=\"75%\">";

    echo $str1;

if (!($fp = fopen($fileName, 'w'))) {
    return;
}

    $str1="<table border=\"0\" width=\"75%\">";


$str2="<tr>";
$str3="<td width=\"20%\">";
$str4="<img src= $theFigureName  alt=\" \" width= \"100\">"; 
$str5="</td>";
$str6="<td width=\"80%\">";
$str7="<a href=  $theHTML >  $theLinkText  </a>"; 
$str8= $theSummary;
$str9="</td>";
$str10="</tr>";
$str11="</table>";    




$len = fprintf($fp, '%s',$str1."\n");
$len = fprintf($fp, '%s',$str2."\n");
$len = fprintf($fp, '%s',$str3."\n");
$len = fprintf($fp, '%s',$str4."\n");
$len = fprintf($fp, '%s',$str5."\n");
$len = fprintf($fp, '%s',$str6."\n");
$len = fprintf($fp, '%s',$str7."\n");
$len = fprintf($fp, '%s',$str8."\n");
$len = fprintf($fp, '%s',$str9."\n");
$len = fprintf($fp, '%s',$str10."\n");
$len = fprintf($fp, '%s',$str11."\n");






}
?>

之后,我使用以下方法将此页面加载到HTML页面(将显示摘要的HTML页面)中:

$ theUser = mysql_fetch_assoc($ theUserSearch); $ theFirstName = $ theUser [ '姓名']; $ theLastName = $ theUser [ '姓氏']; $ theUserName = $ theUser [ '用户名']; $ theSummary = $ theUser [ '摘要'];

frontPagePresentation($ theFirstName,$ theLastName,$ theUserName,$ theSummary);

$ theHTML = “ShowSearch” $ theUserName。 “HTML”;

require($DOCUMENT_ROOT . $theHTML);

就像我说的那样,我是PHP的新手,但是这似乎并不是一个很聪明的方法。

每次我必须生成大量摘要以及与这些摘要关联的所有主页时(由于将浏览器发送为HTML之后,我将无法再访问它们-我在客户端),并且每次搜索后都必须删除它们(与每个项目相关的摘要和HTML页面)。 此外,尚不清楚如何选择正确的时间删除它(如何知道这些结果是否仍在使用?)

正确的方法是什么?

我认为您应该做的是尝试学习像Codeigniter或Laravel这样的小型php框架。 基本上,它允许您“开箱即用”执行的操作是将URL映射到特定代码。

例如,您可以只用2个不同的代码部分来管理它。 第一部分可以显示搜索表单。 第二部分可以显示结果。 无需生成任何HTML。 如果您需要“缓存”数据,则可以使用我列出的框架来完成。

因此,总而言之,您可以使用这些框架进行以下操作:-将url / search映射到文件search.php-将urls / search-result / *映射到文件search_result.php

请注意,“ *”是通配符,如果url以/ search-result /开头,它将始终调用文件“ search_result.php”。

之后,在文件“ search_result.php”中,您可以访问该通配符的值。


向您询问:为什么需要生成HTML文件,其背后的需求是什么? 是为了表现吗? 与他人分享结果。

(对不起,我会使用评论功能,但我的声誉还不到50岁)


编辑2:我建议您做的是尝试学习Laravel(获取“冷却器”)或尝试使用代码点火器(轻量化),如果您有空闲时间的话。

第二种选择,如果您想更快地做,请学习一些有关用Apache重写URL的知识。 例如,请查看: http : //httpd.apache.org/docs/2.0/misc/rewriteguide.html (或在Google上搜索Apache重写教程)

您要实现的目标是:-使用/ user /获取所有存在的URL,并将其发送到search_user.php?stringToSearch = $ 1 php脚本-注意$ 1将被替换为“ / user / ”部分的网址-因此,如果您输入/ user / bob,则该网址基本上将为search_user.php?stringToSearch = bob(但它将是“无提示重定向”,因此用户仍会看到/ user / bob在网址中-然后,在您的search_user.php脚本中

<?php
$stringToSearch = $_GET['stringToSearch'];
$theUser=mysql_fetch_assoc($stringToSearch); 
...

这就是您搜索引擎“详细”部分的内容。

对于“搜索和显示”部分,创建一个新脚本(如index.php),并基本上执行您在开始时发布的内容。 但是代替这一行:

$str7="<a href='$theHTML'>  $theLinkText  </a>"; 

用这个

$str7="<a href='http://www.yoursite.com/user/$theUserName'>  $theLinkText  </a>"; 

那有意义吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM