使用PHP显示MySQL的最新搜索结果
不幸的是,谷歌似乎没有我想要的答案。我目前拥有一个小型搜索引擎网站,使用PHP GET搜索特定内容 我想添加一个最新搜索页面,这意味着记录、保存每个搜索,然后在另一个页面上显示,顶部是“搜索最多的”,甚至是“最新搜索” 简而言之:将我的最新搜索存储在MySQL数据库中(或任何可以使用的数据库),然后在页面上显示它们 我猜这最好用MySQL来完成,然后我想把它输出到PHP中 非常感谢您的帮助。创建表(类似于使用PHP显示MySQL的最新搜索结果,php,mysql,Php,Mysql,不幸的是,谷歌似乎没有我想要的答案。我目前拥有一个小型搜索引擎网站,使用PHP GET搜索特定内容 我想添加一个最新搜索页面,这意味着记录、保存每个搜索,然后在另一个页面上显示,顶部是“搜索最多的”,甚至是“最新搜索” 简而言之:将我的最新搜索存储在MySQL数据库中(或任何可以使用的数据库),然后在页面上显示它们 我猜这最好用MySQL来完成,然后我想把它输出到PHP中 非常感谢您的帮助。创建表(类似于最新搜索),其中包含查询,搜索次数,结果。 然后在每次搜索之后(如果结果计数>0),检查该表
最新搜索
),其中包含查询
,搜索次数
,结果
。然后在每次搜索之后(如果结果计数>0),检查该表中是否存在此搜索查询。并在表中更新或插入新行。
在某些页面上,您可以使用此表中的数据
这很简单。您只需将链接和链接/搜索的名称存储在MySQL中,然后添加时间戳来记录sb搜索它们的时间。然后将它们从按时间戳排序的数据库中拉出,并使用PHP将它们显示在网站上
最近的搜查很容易被滥用。我所要做的就是进入你的网站,搜索“你的网站糟透了”或者更糟的东西,他们基本上破坏了你的网站。我真的很想增加这个功能 就构建最流行的搜索和良好扩展而言,我建议:
- 在某处记录查询。可以是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周期对每个用户请求进行筛选。这可能只是高流量网站上的一个问题。