关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

你的相关阅读够“相关”吗

发布时间:2014-01-20 00:00:00
 为了增加内链,也为了方便用户浏览更多相关的网页,许多网站都设置了“相关阅读”,或“猜你喜欢”之类的栏目,然而我发现有不少网站的相关阅读每个网页都是一样的,并且有时相关性也不强,琢磨后发现,原来站长设置的相关阅读其实是数据表里的最近几条记录罢了,它使用的SQL查询语句大致是这样:   select id,title from mytb order by id desc limit 8   这样的查询,有明显的两个缺陷:   1. 查找到的结果并不能保证是相关的;   2.会照成大量的页面使用了相同的相关阅读,用户体验不好,同时也占据了其它数据曝光的机会。   其实,这个查询语句稍微优化下,就可以改善“相关阅读”,方法如下:   分析:首先判断当前网页的数据id在整个表中所处的位置,分为三种情况(取8条记录为例):   1. 当前id小于升序下的第4条id;   2. 当前id大于降序下的第4条id;   3.当前id处于这两者之间。   先得到数据表的最大(maxid)和最小(minid) id:   select max(id) maxid from mytb;   select min(id) minid from mytb;   然后在程序中使用判断语句,比如在php中:   $num=$id+4;   $where=" order by id desc";   if($id<$maxid-4 && $id>$minid+4) $where="and id<$num order by id desc";   if( $id<$minid+4) $where="and id>$minid order by id asc";   $sql="select id,title from mytb where id !=$id $where limit 8 ";   通过上述方法取出来的值会随着当前ID的变化而变化,特别是当你上传文章的时候,如果把相关性的文章紧挨着上传,那么相关性就会更强。   当然,也可以使用匹配关键词的方式,但是一篇文章往往有好几个关键词,何况相关阅读往往是在同一栏目下进行的,查询效率远没有上面提供的方法强。   由大成网(http://www.phpdo100.com)提供,转载请注明出处。

/template/Home/Zkeys/PC/Static