<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>一个程序猿 &#187; 分页</title>
	<atom:link href="http://www.sunboyu.cn/tag/%e5%88%86%e9%a1%b5/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sunboyu.cn</link>
	<description>时光不会倒流,脚步总要前进</description>
	<lastBuildDate>Tue, 27 Jul 2010 06:24:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>smarty分页程序，模板小改进</title>
		<link>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml</link>
		<comments>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml#comments</comments>
		<pubDate>Mon, 27 Jul 2009 07:11:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[原创技术]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=899</guid>
		<description><![CDATA[增加了：跳转到第几页的功能
模板部分
&#60;div id=&#34;page&#34;&#62;
&#60;table&#62;
&#160;&#160; &#160;&#60;tr&#62;
	&#160; &#160; &#60;td&#62;
		共{{$page.count}}条数据 每页{{$page.pagesize}}条&#160; 共{{$page.pagecount}}页 当前第{{$page.page}}页
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;!-- 新加的跳转功能&#160; start --&#62;
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;跳转到第 
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;select onchange=&#34;window.location.href='{{$page.baseurl}}&#38;page='+this.options[this.selectedIndex].value&#34;&#62;
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;{{section name=pagejump loop=4 start=0 step=1 max=4}}
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#60;option value=&#34;{{$smarty.section.pagejump.index+1}}&#34;&#62;{{$smarty.section.pagejump.index+1}}&#60;/option&#62;
&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>增加了：跳转到第几页的功能</p>
<p>模板部分</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条&nbsp; 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 新加的跳转功能&nbsp; start --&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;跳转到第 </li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;select onchange=&quot;window.location.href='{{$page.baseurl}}&amp;page='+this.options[this.selectedIndex].value&quot;&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{{section name=pagejump loop=4 start=0 step=1 max=4}}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;option value=&quot;{{$smarty.section.pagejump.index+1}}&quot;&gt;{{$smarty.section.pagejump.index+1}}&lt;/option&gt;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{{/section}}</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/select&gt; 页</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 新加的跳转功能&nbsp; start --&gt;</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if ($vols.page &gt; 0 ) &amp;&amp; ($vols.page &lt; = $page.pagecount) }}</li>
<li>				{{if $vols.link eq 1}}</li>
<li>				&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]</li>
<li>				{{else}}</li>
<li>				[{{$vols.page}}]</li>
<li>				{{/if}}</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>其实我在做的时候又出现个问题，如果是url重写了，如何来做这个baseurl变量。问题解决方法是，把url当做模板，比如/blog/index/%d</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/07/27/smarty%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8f%ef%bc%8c%e6%a8%a1%e6%9d%bf%e5%b0%8f%e6%94%b9%e8%bf%9b.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarty分页类修正版</title>
		<link>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml</link>
		<comments>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml#comments</comments>
		<pubDate>Thu, 07 May 2009 19:59:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=691</guid>
		<description><![CDATA[原来写的分页类有问题，经过排查，发现一个变量用错了，修改之
效果,很简单，黑白配，有心的人可以自己修改一下风格，欢迎共享

PHP部分
&#60; ?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2009 05 07&#160; sunboyu@gmail.com
&#160;*&#160; Demo
	$page = new Page( 1 , 'v_user' , '*' , '' );
	$rs = $page-&#62;__getlist();
	$smarty-&#62;assign(&#34;page&#34;,$page-&#62;__getpagelist());
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public [...]]]></description>
			<content:encoded><![CDATA[<p>原来写的分页类有问题，经过排查，发现一个变量用错了，修改之</p>
<p>效果,很简单，黑白配，有心的人可以自己修改一下风格，欢迎共享</p>
<p><a href="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-1.jpg"><img src="http://www.sunboyu.cn/upfiles/2009/05/e69caae591bde5908d-1.jpg" alt="e69caae591bde5908d-1" title="e69caae591bde5908d-1" width="589" height="77" class="aligncenter size-full wp-image-695" /></a></p>
<p>PHP部分</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt; ?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2009 05 07&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>	$page = new Page( 1 , 'v_user' , '*' , '' );</li>
<li>	$rs = $page-&gt;__getlist();</li>
<li>	$smarty-&gt;assign(&quot;page&quot;,$page-&gt;__getpagelist());</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>	 public $db;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#数据库连接</li>
<li>	 public $table;&nbsp; &nbsp; &nbsp; #要查询的表</li>
<li>	 public $fileds;&nbsp; &nbsp; &nbsp;#要返回的字段</li>
<li>	 public $where;&nbsp; &nbsp; &nbsp; #where条件</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $page , $table , $fields = '*' , $where = false , $baseurl = false )</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;global $_CFG,$db;</li>
<li>		 $this-&gt;db&nbsp; &nbsp; &nbsp; &nbsp; = $db;</li>
<li>		 $this-&gt;table&nbsp; &nbsp; &nbsp;= $table;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = isset($page) ? intval($page) : 1;</li>
<li>		 $this-&gt;fileds&nbsp; &nbsp; = $fields;</li>
<li>		 $this-&gt;pagesize&nbsp; = $_CFG['pagesize'];</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= ($baseurl!=false) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist&nbsp; = $_CFG['pagelist'];</li>
<li>		 $this-&gt;where&nbsp; &nbsp; &nbsp;= $where;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		parse_str($_SERVER['QUERY_STRING'],$str);</li>
<li>		if(isset($str['page']))</li>
<li>		{</li>
<li>			unset($str['page']);</li>
<li>		}</li>
<li>		return count($str) &gt; 0 ? &quot;?&quot;.http_build_query($str) : &quot;?&quot;;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得记录集</li>
<li>	 function __getlist()</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;#获得count记录</li>
<li>		 $sql = sprintf(&quot;SELECT COUNT(*) AS table_count FROM %s %s&quot;,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''));</li>
<li>		 $rs = $this-&gt;db-&gt;fetch( $sql );</li>
<li>		 $this-&gt;count = $rs['table_count'];</li>
<li>	&nbsp; &nbsp; &nbsp;$offset = ($this-&gt;page-1)*$this-&gt;pagesize-1;</li>
<li>	&nbsp; &nbsp; &nbsp;$sql = sprintf(&quot;SELECT %s FROM %s %s LIMIT %d,%d&quot;,$this-&gt;fileds,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''),$this-&gt;pagesize*($this-&gt;page-1),$this-&gt;pagesize);</li>
<li>		 #echo $sql;</li>
<li>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $list = $this-&gt;db-&gt;fetchAll( $sql );</li>
<li>		 return $list;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt; =1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;result['pagecount'] ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;result['pagecount'] ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&amp;lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt; = $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>		 return $this-&gt;result;</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>模板部分</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条&nbsp; 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if ($vols.page &gt; 0 ) &amp;&amp; ($vols.page &lt; = $page.pagecount) }}</li>
<li>				{{if $vols.link eq 1}}</li>
<li>				&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]</li>
<li>				{{else}}</li>
<li>				[{{$vols.page}}]</li>
<li>				{{/if}}</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>补充一个demo</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#PHP部分</li>
<li>$page = new Page( $page , $this-&gt;area_table , $fields = '*' , $where);</li>
<li>$result['rs'] = $page-&gt;__getlist();</li>
<li>$result['page'] = $page-&gt;__getpagelist();</li>
<li>$smarty-&gt;assign(&quot;list&quot;,$result['rs']);</li>
<li>$smarty-&gt;assign(&quot;page&quot;,$result['page']);</li>
<li>$smarty-&gt;display('list.tpl');</li>
<li>#模板里边只要引用这个分页模板即可</li>
<li>{{include file=$smarty.const.Tpl|cat:&quot;/Page.tpl&quot;}}</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2009/05/08/smarty%e5%88%86%e9%a1%b5%e7%b1%bb%e4%bf%ae%e6%ad%a3%e7%89%88.shtml/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>简单分页程序,adodb+smarty</title>
		<link>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml#comments</comments>
		<pubDate>Sun, 31 Aug 2008 09:56:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[adodb]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=292</guid>
		<description><![CDATA[分页类
&#60;?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*&#160; Demo
	$page = new Page( 1 , 'v_user' , '*' , '' );
	$rs = $page-&#62;__getlist();
	$smarty-&#62;assign(&#34;page&#34;,$page-&#62;__getpagelist());
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public $result;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>分页类</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*&nbsp; Demo</li>
<li>	$page = new Page( 1 , 'v_user' , '*' , '' );</li>
<li>	$rs = $page-&gt;__getlist();</li>
<li>	$smarty-&gt;assign(&quot;page&quot;,$page-&gt;__getpagelist());</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>	 </li>
<li>	 public $db;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#数据库连接</li>
<li>	 public $table;&nbsp; &nbsp; &nbsp; #要查询的表</li>
<li>	 public $fileds;&nbsp; &nbsp; &nbsp;#要返回的字段</li>
<li>	 public $where;&nbsp; &nbsp; &nbsp; #where条件</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $page , $table , $fields = '*' , $where = false , $baseurl = false )</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;global $_CFG;</li>
<li>		 $this-&gt;db&nbsp; &nbsp; &nbsp; &nbsp; = GetDB();</li>
<li>		 $this-&gt;count&nbsp; &nbsp; &nbsp;= $count;</li>
<li>		 $this-&gt;table&nbsp; &nbsp; &nbsp;= $table;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = isset($page) ? intval($_GET['page']) : 1;</li>
<li>		 $this-&gt;fileds&nbsp; &nbsp; = $fields;</li>
<li>		 $this-&gt;pagesize&nbsp; = $_CFG['pagesize'];</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= ($baseurl!=false) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist&nbsp; = $_CFG['pagelist'];</li>
<li>		 $this-&gt;where&nbsp; &nbsp; &nbsp;= $where;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		$str = ereg_replace(sprintf(&quot;(^|&amp;)page=%d&quot;,$this-&gt;page),&quot;&quot;,$_SERVER['QUERY_STRING']);</li>
<li>		return $str==&quot;&quot; ? '?' : $str;</li>
<li>	 }</li>
<li>	 </li>
<li>	 #获得记录集</li>
<li>	 function __getlist()</li>
<li>	 {</li>
<li>	&nbsp; &nbsp; &nbsp;#获得count记录</li>
<li>		 $sql = sprintf(&quot;SELECT COUNT(0) AS table_count FROM %s&quot;,$this-&gt;table);</li>
<li>		 $rs = $this-&gt;db-&gt;Execute( $sql );</li>
<li>		 $this-&gt;count = $rs-&gt;fields['table_count'];</li>
<li>	&nbsp; &nbsp; &nbsp;$offset = ($this-&gt;page-1)*$this-&gt;pagesize-1;</li>
<li>	&nbsp; &nbsp; &nbsp;$sql = sprintf(&quot;SELECT %s FROM %s %s&quot;,$this-&gt;fileds,$this-&gt;table,(($this-&gt;where!=false) ? &quot; WHERE &quot;.$this-&gt;where : ''));</li>
<li>		 $rs = $this-&gt;db-&gt;SelectLimit( $sql , $this-&gt;pagesize , $offset );</li>
<li>		 $list = false;</li>
<li>		 while(!$rs-&gt;EOF)</li>
<li>		 {</li>
<li>		&nbsp; &nbsp; &nbsp;$list[] = $rs-&gt;fields;</li>
<li>			 $rs-&gt;MoveNext();</li>
<li>		 }</li>
<li>		 return $list;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt;=1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 </li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt;= $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>		 return $this-&gt;result;</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>smarty模版</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">{{config_load file=&quot;Lang.Page.$lang.conf&quot;}}&lt;div id=&quot;page&quot;&gt;</li>
<li>&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		{{#gongs#}}{{$page.count}}{{#pagecountend#}} {{#pagepagesizeper#}}{{$page.pagesize}}{{#pagepagelistper#}}{{#tiao#}}&nbsp; {{#gongs#}}{{$page.pagecount}}{{#page#}} {{#pagepage#}}{{$page.page+1}}{{#page#}}</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.pagecount&gt;1}}</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;{{#pagefirst#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagefirst#}}</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;{{#pagepre#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagepre#}}</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if $vols.link eq 1}}</li>
<li>			&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]&lt;/a&gt;</li>
<li>			{{else}}</li>
<li>			[{{$vols.page}}]</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.page+1}}&quot;&gt;{{#pagenext#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagenext#}}</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl|default:&quot;?&quot;}}&amp;page={{$page.pagecount}}&quot;&gt;{{#pageend#}}&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		{{#pagelast#}}</li>
<li>		{{/if}}</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li>
<li>&lt;/div&gt;</li></ol></div>
<p>语言包内容</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">pagecountend&nbsp; &nbsp; &nbsp; = &quot;条数据&quot;</li>
<li>pagepagesizeper&nbsp; &nbsp;= &quot;每页&quot;</li>
<li>pagepagesizeend&nbsp; &nbsp;= &quot;条&quot;</li>
<li>page&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;页&quot;</li>
<li>tiao&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;条&quot;</li>
<li>pagepage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;当前第&quot;</li>
<li>pagefirst&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;首页&quot;</li>
<li>pagepre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;上一页&quot;</li>
<li>pagenext&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;下一页&quot;</li>
<li>pagelast&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &quot;尾页&quot;</li>
<li>gongs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;共&quot;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/31/%e7%ae%80%e5%8d%95%e5%88%86%e9%a1%b5%e7%a8%8b%e5%ba%8fadodbsmarty.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单的PHP+SMARTY分页类</title>
		<link>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml#comments</comments>
		<pubDate>Fri, 29 Aug 2008 15:21:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=291</guid>
		<description><![CDATA[类的代码
&#60;?php
/*&#160; Page.Class.php
&#160;*&#160; Page
&#160;*&#160; @link&#160; &#160; &#160; &#160; http://www.sunboyu.cn
&#160;*&#160; @package&#160; &#160; &#160;OA
&#160;*&#160; @version&#160; &#160; &#160;V1.0
&#160;*
&#160;*&#160; 2008 08 28&#160; sunboyu@gmail.com
&#160;*/
&#160;class Page
&#160;{
	 public $count;&#160; &#160; &#160; #结果总数
	 public $page;&#160; &#160; &#160; &#160;#当前页
	 public $pagesize;&#160; &#160;#每页结果数
	 public $pagecount;&#160; #翻页数
	 public $baseurl;&#160; &#160; #url
	 public $result;&#160; &#160; &#160;#结果数组集
	 public $pagelist;&#160; &#160;#每翻页数
&#160;
	 #构造函数，初始化变量
	 function __construct( $count , $page , $pagesize , [...]]]></description>
			<content:encoded><![CDATA[<p>类的代码</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>/*&nbsp; Page.Class.php</li>
<li>&nbsp;*&nbsp; Page</li>
<li>&nbsp;*&nbsp; @link&nbsp; &nbsp; &nbsp; &nbsp; http://www.sunboyu.cn</li>
<li>&nbsp;*&nbsp; @package&nbsp; &nbsp; &nbsp;OA</li>
<li>&nbsp;*&nbsp; @version&nbsp; &nbsp; &nbsp;V1.0</li>
<li>&nbsp;*</li>
<li>&nbsp;*&nbsp; 2008 08 28&nbsp; sunboyu@gmail.com</li>
<li>&nbsp;*/</li>
<li>&nbsp;class Page</li>
<li>&nbsp;{</li>
<li>	 public $count;&nbsp; &nbsp; &nbsp; #结果总数</li>
<li>	 public $page;&nbsp; &nbsp; &nbsp; &nbsp;#当前页</li>
<li>	 public $pagesize;&nbsp; &nbsp;#每页结果数</li>
<li>	 public $pagecount;&nbsp; #翻页数</li>
<li>	 public $baseurl;&nbsp; &nbsp; #url</li>
<li>	 public $result;&nbsp; &nbsp; &nbsp;#结果数组集</li>
<li>	 public $pagelist;&nbsp; &nbsp;#每翻页数</li>
<li>&nbsp;</li>
<li>	 #构造函数，初始化变量</li>
<li>	 function __construct( $count , $page , $pagesize , $pagelist , $baseurl = false )</li>
<li>	 {</li>
<li>		 $this-&gt;count&nbsp; &nbsp; &nbsp;= $count;</li>
<li>		 $this-&gt;page&nbsp; &nbsp; &nbsp; = $page;</li>
<li>		 $this-&gt;pagesize&nbsp; = $pagesize;</li>
<li>		 $this-&gt;baseurl&nbsp; &nbsp;= isset($baseurl) ? $baseurl : $this-&gt;__geturl();</li>
<li>		 $this-&gt;pagelist = $pagelist;</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得当前url</li>
<li>	 function __geturl()</li>
<li>	 {</li>
<li>		return ereg_replace(&quot;(^|&amp;)page={$page}&quot;,&quot;&quot;,$_SERVER['QUERY_STRING']);</li>
<li>	 }</li>
<li>&nbsp;</li>
<li>	 #获得分页列表</li>
<li>	 function __getpagelist()</li>
<li>	 {</li>
<li>		 $this-&gt;result['count'] = $this-&gt;count;</li>
<li>		 $this-&gt;result['page'] = $this-&gt;page;</li>
<li>		 $this-&gt;result['pagesize'] = $this-&gt;pagesize;</li>
<li>		 $this-&gt;result['pagecount'] = ceil($this-&gt;count/$this-&gt;pagesize);</li>
<li>		 if($this-&gt;result['pagecount']&lt;=1) //只有一页以下</li>
<li>		 {</li>
<li>			 $this-&gt;result['pagelist'] = 0;</li>
<li>		 }</li>
<li>		 else //一页以上</li>
<li>		 {</li>
<li>			 #前一页，第一页的算法</li>
<li>			 $this-&gt;result['first'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 $this-&gt;result['pre'] = ($this-&gt;page == 1) ? 0 : 1;</li>
<li>			 #后一页，最后一页的算法</li>
<li>			 $this-&gt;result['next'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>			 $this-&gt;result['last'] = ($this-&gt;page == $this-&gt;pagecount ) ? 0 : 1;</li>
<li>&nbsp;</li>
<li>			 </li>
<li>&nbsp;</li>
<li>			 #起始</li>
<li>			 $pagearray = array();</li>
<li>			 $start = floor(($this-&gt;page-1)/10)*10+1;</li>
<li>			 for($i=0;$i&lt;10;$i++)</li>
<li>			 {</li>
<li>			&nbsp; &nbsp; &nbsp;if( ($start+$i) &lt;= $this-&gt;result['pagecount'])</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['page'] = $start+$i; </li>
<li>				 }</li>
<li>				 if( ($start+$i) != $this-&gt;page )</li>
<li>				 {</li>
<li>				&nbsp; &nbsp; &nbsp;$pagearray[$i]['link'] = 1; </li>
<li>				 }</li>
<li>			 }</li>
<li>			 #分页导航列表</li>
<li>			 $this-&gt;result['pagelist'] = $pagearray;</li>
<li>			 $this-&gt;result['baseurl'] = $this-&gt;baseurl;</li>
<li>		 }</li>
<li>	 }</li>
<li>}</li>
<li>?&gt;</li></ol></div>
<p>模版代码</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;table&gt;</li>
<li>&nbsp;&nbsp; &nbsp;&lt;tr&gt;</li>
<li>	&nbsp; &nbsp; &lt;td&gt;</li>
<li>		共{{$page.count}}条数据 每页{{$page.pagesize}}条 共{{$page.pagecount}}页 当前第{{$page.page}}页</li>
<li>		&lt;/td&gt;</li>
<li>		&lt;td&gt;</li>
<li>		{{if $page.first eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&quot;&gt;首页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		首页</li>
<li>		{{/if}}</li>
<li>		{{if $page.pre eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;上一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		上一页</li>
<li>		{{/if}}</li>
<li>		{{foreach from=$page.pagelist item=vols}}</li>
<li>		&nbsp; &nbsp; {{if $vols.link eq 1}}</li>
<li>			&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$vols.page}}&quot;&gt;[{{$vols.page}}]&lt;/a&gt;</li>
<li>			{{else}}</li>
<li>			[{{$vols.page}}]</li>
<li>			{{/if}}</li>
<li>		{{/foreach}}</li>
<li>		{{if $page.next eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.page-1}}&quot;&gt;下一页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		下一页</li>
<li>		{{/if}}</li>
<li>		{{if $page.last eq 1}}</li>
<li>		&lt;a href=&quot;{{$page.baseurl}}&amp;page={{$page.pagecount}}&quot;&gt;尾页&lt;/a&gt;</li>
<li>		{{else}}</li>
<li>		尾页</li>
<li>		{{/if}}</li>
<li>		&lt;/td&gt;</li>
<li>	&lt;/tr&gt;</li>
<li>&lt;/table&gt;</li></ol></div>
<p>调用范例</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;?php</li>
<li>require_once('Include/Init.inc.php');</li>
<li>require_once('Include/Class/Page.Class.php');</li>
<li>$page = new Page( 999 , 12 , 10 , 6 , '?' );</li>
<li>$page-&gt;__getpagelist();</li>
<li>$smarty-&gt;assign(&quot;page&quot;,$page-&gt;result);</li>
<li>$smarty-&gt;display(&quot;page.html&quot;);</li>
<li>?&gt;</li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/29/%e7%ae%80%e5%8d%95%e7%9a%84phpsmarty%e5%88%86%e9%a1%b5%e7%b1%bb.shtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>静态分页算法解决方案收集</title>
		<link>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml</link>
		<comments>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml#comments</comments>
		<pubDate>Thu, 14 Aug 2008 03:36:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其他]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[静态]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=278</guid>
		<description><![CDATA[曾经看过动易CMS的代码，曾经在官方论坛上也讨论过分页算法的问题。主要的瓶颈在于，如果一个分类页数过多，那么每更新一个文件，需要生成 count/pagesize 个静态页面，这样再算上分发的话，消耗了大量的cpu，io，带宽。因此门户级的网站，设计一个好的分页算法或者说新闻组织结构是非常必要的。
这里考虑的是全静态网站，并且使用分发形式更新的，也就是在前端只有html静态文件。首页，板块首页，分类首页，这样当然就是由编辑即时更新并且分发。
而子分类，无下级的时候，就得考虑分页，对照以下门户级网站，看他们如何解决。
http://news.sina.com.cn/china/gd/2008-08-13/index.html
可以看出，新浪按照每天的新闻为一页，分页自然容易解决，使用天做为页数，这是天然纯净的算法。另外新浪新闻的实时性比较好，流量集中在当天新闻，这样也比较容易做负载的均衡和过期资源的回收。
http://news.163.com/special/00011SG2/shList.html
网易的每个分类只显示10页，这样就不会有大量分页列表的问题，顶多10页，我感觉比新浪少次。
http://news.cctv.com/china/index.shtml
cctv用的是TurboCMS，这个分页挺有意思，一个模板，但从数据库取500条记录，生成静态。因为记录只是一个标题，一个链接，字节数不会太大，那么用js去用这个大数组进行分页，貌似不错。很节约带宽的做法。赞一个！
sohu的100个分页，暂没看出他怎么做的，反正sohu有钱，大不了加机器。
]]></description>
			<content:encoded><![CDATA[<p>曾经看过动易CMS的代码，曾经在官方论坛上也讨论过分页算法的问题。主要的瓶颈在于，如果一个分类页数过多，那么每更新一个文件，需要生成 count/pagesize 个静态页面，这样再算上分发的话，消耗了大量的cpu，io，带宽。因此门户级的网站，设计一个好的分页算法或者说新闻组织结构是非常必要的。</p>
<p>这里考虑的是全静态网站，并且使用分发形式更新的，也就是在前端只有html静态文件。首页，板块首页，分类首页，这样当然就是由编辑即时更新并且分发。</p>
<p>而子分类，无下级的时候，就得考虑分页，对照以下门户级网站，看他们如何解决。</p>
<p>http://news.sina.com.cn/china/gd/2008-08-13/index.html</p>
<p>可以看出，新浪按照每天的新闻为一页，分页自然容易解决，使用天做为页数，这是天然纯净的算法。另外新浪新闻的实时性比较好，流量集中在当天新闻，这样也比较容易做负载的均衡和过期资源的回收。</p>
<p>http://news.163.com/special/00011SG2/shList.html</p>
<p>网易的每个分类只显示10页，这样就不会有大量分页列表的问题，顶多10页，我感觉比新浪少次。</p>
<p>http://news.cctv.com/china/index.shtml</p>
<p>cctv用的是TurboCMS，这个分页挺有意思，一个模板，但从数据库取500条记录，生成静态。因为记录只是一个标题，一个链接，字节数不会太大，那么用js去用这个大数组进行分页，貌似不错。很节约带宽的做法。赞一个！</p>
<p>sohu的100个分页，暂没看出他怎么做的，反正sohu有钱，大不了加机器。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/08/14/%e9%9d%99%e6%80%81%e5%88%86%e9%a1%b5%e7%ae%97%e6%b3%95%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e6%94%b6%e9%9b%86.shtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.564 seconds -->
