使用PHP显示MySQL的最新搜索结果

使用PHP显示MySQL的最新搜索结果,php,mysql,Php,Mysql,不幸的是,谷歌似乎没有我想要的答案。我目前拥有一个小型搜索引擎网站,使用PHP GET搜索特定内容 我想添加一个最新搜索页面,这意味着记录、保存每个搜索,然后在另一个页面上显示,顶部是“搜索最多的”,甚至是“最新搜索” 简而言之:将我的最新搜索存储在MySQL数据库中(或任何可以使用的数据库),然后在页面上显示它们 我猜这最好用MySQL来完成,然后我想把它输出到PHP中 非常感谢您的帮助。创建表(类似于最新搜索),其中包含查询,搜索次数,结果。 然后在每次搜索之后(如果结果计数>0),检查该表

不幸的是,谷歌似乎没有我想要的答案。我目前拥有一个小型搜索引擎网站,使用PHP GET搜索特定内容

我想添加一个最新搜索页面,这意味着记录、保存每个搜索,然后在另一个页面上显示,顶部是“搜索最多的”,甚至是“最新搜索”

简而言之:将我的最新搜索存储在MySQL数据库中(或任何可以使用的数据库),然后在页面上显示它们

我猜这最好用MySQL来完成,然后我想把它输出到PHP中

非常感谢您的帮助。

创建表(类似于
最新搜索
),其中包含
查询
搜索次数
结果

然后在每次搜索之后(如果结果计数>0),检查该表中是否存在此搜索查询。并在表中更新或插入新行。
在某些页面上,您可以使用此表中的数据


这很简单。

您只需将链接和链接/搜索的名称存储在MySQL中,然后添加时间戳来记录sb搜索它们的时间。然后将它们从按时间戳排序的数据库中拉出,并使用PHP将它们显示在网站上

  • 创建一个包含三行的表:搜索链接时间戳
  • 然后编写一个PHP脚本,在需要时插入行(这是在用户实际搜索时完成的)
  • 您希望在其中显示内容的主页只需将数据返回并将其放入链接容器$nameOfWebsite中
  • 最好使用for/while循环来执行步骤3
  • 您还可以添加计数器之类的内容,以了解哪些搜索最受欢迎/这将是MySQL中的另一个字段,您只需不断更新它(增加一个,但仅限于IP)

  • 最近的搜查很容易被滥用。我所要做的就是进入你的网站,搜索“你的网站糟透了”或者更糟的东西,他们基本上破坏了你的网站。我真的很想增加这个功能

    就构建最流行的搜索和良好扩展而言,我建议:

    • 在某处记录查询。可以是MySQL db表,但日志文件更合理,因为它是日志
    • 定期运行脚本/作业以从日志中提取/分组数据
    • 让周期脚本作业用最流行的搜索填充一些表
    我喜欢这种方法,因为:

    • 后端脚本完成了所有的艰苦工作——没有用户请求的分组依据等
    • 您可以在后端脚本中引入过滤或任何其他逻辑,而不会影响用户请求
    • 您永远不需要将大量数据放入数据库

      • 好的,你的问题还不清楚。但我猜你的意思是你想先看看最新的结果

        要实现此目的,请执行以下步骤:

      • 存储结果时,请使用一个额外字段来保存DATETIME。因此,您的插入查询将如下所示:

        在表(SearchItem,When)中插入值($strSearchItem,Now())

      • 检索时,请确保按如下方式包含订单:

        当描述时,从表格顺序中选择*


      • 我希望这就是您想要做的:)

        创建一个数据库,创建一个表(例如
        最近的搜索
        )和一些字段,如
        查询
        (搜索的查询)和
        时间戳
        (进行查询的unix时间戳),然后对于您的脚本,您的MySQL查询将类似于:

        SELECT * FROM `recent_searches` ORDER BY `timestamp` DESC LIMIT 0, 5
        

        这应该会返回最近的5次搜索,其中最新的一次出现在前面。

        对不起,我的问题重新措辞了。我仍然没有看到任何问题。。。您是在征求我们的意见还是关于最佳解决方案的建议?关于最佳解决方案的建议,因为四处搜索并没有给我可靠的答案。
        或任何有效的方法
        都可以。。。取决于您有哪些存储?它可以是memcached、APC、Redis、文件。。。任何东西我用APC来做这个。@Dboy1612:好的,那就做吧!我考虑不添加该功能。将“大量数据”存储在平面文件中,而不是存储在数据库(实际上是为任务而设计的)中有什么好处?为了防止这种“损坏”,您可以只过滤查询。它可以轻松地“动态”完成,无需背景。从这个角度来说,任何用户的文本都可以“破坏”网站(评论、博客、推特等)。@Tomalak除了要聚合此数据的点之外,没有必要将其包含在RDBMS中。您正在浪费快速数据库存储/索引来存储您很少需要的数据,这些数据将变得过时。@OZ_uu您可以这样做,但执行此筛选工作意味着您只需执行一次(每次后端脚本运行时),而不必使用这些CPU周期对每个用户请求进行筛选。这可能只是高流量网站上的一个问题。