2011-05-04 94 views
1

谷歌不幸似乎没有我想要的答案。我目前拥有一个使用PHP GET的特定内容的小型搜索引擎网站。显示来自MySQL的最新搜索结果,使用PHP

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

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

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

任何帮助,非常感谢。

+2

那么你的问题是什么? – 2011-05-04 16:21:22

+0

对不起,改编我的问题。 – Dustin 2011-05-04 16:23:28

+0

我仍然没有看到任何问题...您是否要求我们提供意见或建议最佳解决方案? – shadyyx 2011-05-04 16:25:37

回答

0

创建表格(名称类似于latest_searches),其字段为querysearched_count,results_count
然后在每次搜索后(如果results_count> 0),检查该搜索查询是否存在于该表中。并将新行更新或插入表中。
而在某些页面上,您可以使用此表中的数据。

这很简单。

0

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

  1. 创建一个包含三行的表格:搜索链接时间戳。
  2. 然后编写一个PHP脚本以便在需要时插入行(这是在用户实际搜索时完成的)
  3. 您希望显示内容的主页面只需获取数据并将其放入链接容器$ nameOfWebsite
  4. 这可能是最好的使用for/while循环来做第3步
  5. 你可以另外添加某事像计数器知道哪些搜索是最流行的/这将是MySQL中的另一个领域,你只是不断更新它(增加一个,但限于IP)
1

最近的搜索可能很容易被滥用。我所要做的就是进入您的网站并搜索“您的网站很糟糕”,或者更糟,他们已经基本上污损了您的网站。我真的想考虑添加该功能。

在建设中最热门的搜索,很好地缩放来我建议方面:

  • 日志查询某处。可以是MySQL数据库表,但日志文件会更明智,因为它是日志。
  • 定期运行一个脚本/工作从日志
  • 提取/组数据有周期性的脚本任务填充某些表与最流行的搜索

我喜欢这种做法,因为:

  • 后端脚本完成所有艰苦的工作 - 没有GROUP BY等由用户请求制作
  • 您可以向后端脚本引入过滤或任何其他逻辑,并且不会影响用户请求
  • 你并不需要在值数据的大容量进数据库
+0

我会考虑_not_添加该功能。 – 2011-05-04 16:32:31

+1

将“大量数据”存储在平面文件中而不是数据库(实际上已为任务设计_designed_)有什么好处? – 2011-05-04 16:32:54

+0

为了防止这种“瑕疵”,你可以过滤查询。它可以很容易地“即时”完成,而不需要背景。用这个术语来说,任何用户的文本都可以“毁掉”网站(评论,博客,推文等)。 – 2011-05-04 16:35:10

0

好吧,你的问题是目前尚不清楚。但我猜你的意思是你想先阅读最新的结果。

为此,请按照下列步骤操作:

  1. 当存储结果使用额外的字段来保存DATETIME。所以,你的插入查询将是这样的:

    插入到表(SearchItem,当)VALUES($ strSearchItem,现在())

  2. 检索时,确保要这样包括顺序:

    从表顺序选择*通过当说明

我希望这是你的意思做:)

0

创建数据库,创建表(例如recent_searches)和领域,诸如有人提出质疑query(查询搜索)和timestamp(UNIX时间戳)说,然后你的脚本你的MySQL查询将是这样的:

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

这将返回最近5次搜索,最近一次搜索。