PHP网页编程之改自erquan 的 odbc连mssql分页的类, ...
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。odbc|分页 <?class Pages{
var $cn; //毗连数据库游标
var $d; //毗连数据表的游标
var $result; //了局
var $dsn; //dsn源
var $user; //用户名
var $pass; //暗码
var $total; //纪录总数
var $pages; //总页数
var $onepage; //每页条数
var $page; //以后页
var $fre; //上一页
var $net; //下一页
var $i; //掌握每页显示
##############################
########毗连数据库 ##########
function getConnect($dsn,$user,$pass){
$this->cn=@odbc_connect($dsn,$user,$pass);
if(!$this->cn){
$error="毗连数据库失足";
$this->getMess($error);
}
}
##############################
######## 停止表的查询 #########
function getDo($sql){ //从表中查询数据
$this->d=@odbc_do($this->cn,$sql);
if(!$this->d){
$error="查询时产生了小毛病......";
$this->getMess($error);
}
return $this->d;
}
#################################
######## 求表中数据的总量 #########
function getTotal($sql){
$this->sql=$sql;
$dT=$this->getDo($this->sql); //求总数的游标
$this->total=odbc_result($dT,"total"); //这里为什么不克不及$this->d,total 为一个字段
// $this->total=@odbc_num_rows($dT); //应絮聒老迈的定见,odbc_num_rows 不克不及用,不知为什么,前往为-1
return $this->total;
}
##############################
######## 停止表的查询 #########
function getList($sql,$onepage,$page){
if ($page<>"" and $page<1) //当此页小于时的处置
$page=1;
$this->s=$sql;
$this->onepage=$onepage; //每页显示的纪录数
$this->page=$page; //页数
$this->dList=$this->getDo($this->s); //毗连表的游标
$this->pages=ceil($this->total/$this->onepage); //盘算大于指定命的最小整数
if ($this->page>$this->pages) //当此页大于最大页的处置
$this->page=$this->pages;
if($this->pages==0)
$this->pages++; //不克不及取到第0页
if(!isset($this->page))
$this->page=1;
$this->fre = $this->page-1; //将显示的页数
$this->nxt = $this->page+1;
$this->nums=($this->page-1)*$this->onepage;
return $this->dList;
}
##############################
function getfetch_row($dList){
return odbc_fetch_row($dList);
}
##############################
function getresult($dList,$num){
return odbc_result($dList,$num);
}
##############################
######## 翻页 ################
function getFanye(){
$str="";
if($this->page!=1)
$str.="<form name=go2to form method=Post action='".$PHP_SELF."'><a href=".$PHP_SELF."?page=1> 首页 </a><a href=".$PHP_SELF."?page=".$this->fre."> 前页 </a>";
else
$str.="<font color=999999>首页 前页</font>";
if($this->page<$this->pages)
$str.="<a href=".$PHP_SELF."?page=".$this->nxt."> 后页 </a>";
else
$str.="<font color=999999> 后页 </font>";
if($this->page!=$this->pages)
$str.="<a href=".$PHP_SELF."?page=".$this->pages."> 尾页 </a>";
else
$str.="<font color=999999> 尾页 </font>";
$str.="共".$this->pages."页";
$str.="<font color='000064'>转到 第<input type='text' name='page' size=2 maxLength=3 style='font-size: 9pt; color:#00006A; position: relative; height: 18' value=".$this->page.">页</font> ";
$str.="<input class=button type='button' value='确 定' onclick=check() style='font-family: 宋体; font-size: 9pt; color: #000073; position: relative; height: 19'></form>";
return $str;
}
####################################
######## 对停止提交表单的验验 #########
function check()
{
if (isNaN(go2to.page.value))
echo "javascript:alert('请准确填写转到页数!');";
else if (go2to.page.value==""){
echo "javascript:alert('请输出转到页数!');";
}
else{
go2to.submit();
}
}
function getNums(){ //每页最后的纪录数
return $this->nums;
}
function getOnepage(){ //每页实践条数
return $this->onepage;
}
function getI(){ //暂未用
// $this->i=$this-pageone*($this->page-1)
return $this->i;
}
function getPage(){
return $this->page;
}
function getMess($error){ //定制动静
echo"<center>$error</center>";
exit;
}
}
?>
<?php
// 测试法式
$pg=new Pages();
$pg->getConnect("dsn","user","password");
$pg->getTotal("select count(*) as total from bul_file"); //连先生表求总数
$pg->getList($sql,3,$page);
if($pg->getNums()!=0){
for($i=0;$i<$pg->getNums();$pg->getfetch_row($pg->dList),$i++); //同上
}
echo "<table width=\"400\" border=1 cellspacing=\"0\" cellpadding=\"0\" bordercolordark=\"#FFFFFF\" bordercolorlight=\"#000000\">";
echo $pg->getFanye();
echo "</td></tr></table>";
echo "<table width=\"400\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolordark=\"#FFFFFF\" bordercolorlight=\"#000000\">";
echo "<tr bgcolor=\"#CCFF99\"><td width=\"5%\"><font face=\"隶书\" size=\"4\"><div align=\"center\">ID</div></font></td> <td width=\"50%\"><font face=\"隶书\" size=\"4\"><div align=\"center\">题目</div></font></td> <td width=\"30%\"><font face=\"隶书\" size=\"4\"><div align='center'>日期</div></font></td> </tr>\";
$i=1;
while($pg->getfetch_row($pg->dList)){
$pg->getNums();
echo "<tr><td width=\"5%\">".($pg->nums+$i)."</a></td><td width=\"50%\"><div align='center'><a href=\"list_bul.php?id=".$pg->getresult($pg->dList,1)."\" target=\"left\">".$pg->getresult($pg->dList,2)."</a></div></td><td width=\"30%\"><div align='center'>".substr($pg->getresult($pg->dList,4),1,10)."</div></td></tr>";
if($i==$pg->getOnepage()){ //跳出轮回
break;
}
$i++;
?>既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 本文当是我的笔记啦,遇到的问题随时填充 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 爱上php,他也会爱上你。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
页:
[1]