显示我网站上最受欢迎的网页

时间:2013-07-22 02:40:35

标签: php mysql join

在我的主页上,我想在我的网站上显示30个最受欢迎的页面。我认为最好的方法是为每个页面设置一个点击计数器,表格中的列名为hit_counter。然后,无论何时查看页面,hit_counter都会增加1。

但是我的网站有很多不同的表格,例如酒店,餐厅,娱乐。我希望它们在结果中混合使用,但我不确定从数据库中提取所有内容的查询是什么。

我想这会是某种联系。我还想要获取每一行的名称,描述和网址,我已将这些列命名为通用庄园,例如: hotel_name,hotel_description,hotel_url,restaurant_name,restaurant_description等。

然后查询将ORDER BY hit_counter DESC。

那么进行这种联接的查询是什么,我的表被称为餐馆,酒店和娱乐。

1 个答案:

答案 0 :(得分:0)

如果我没弄错的话,你就是为每个类别页面创建一个新表。在我看来,最好的方法是如果你为页面创建了1个表,1个用于类别,1个用于命中。您还可以拥有酒店餐桌,餐厅餐桌等,但酒店餐桌和餐桌之间存在差异.....酒店应该存储每家酒店的信息,页面应该存储每页的信息。

无论如何,类别表看起来像这样:

ID
Category

页面表应如下所示:

ID
Category_id
url
title
description
etc

命中表应如下所示:

ID
category_id
page_id
hits

这种方式更容易编写查询

'SELECT p.url, p.description, p.title, h.hits FROM pages p JOIN hits h ON p.id=h.page_id ORDER BY h.hits DESC LIMIT 30'

没有测试,但这是我如何做的想法。

PS:对不起,如果有任何错别字