数据库的东西可多了,
显示数据,查寻,分页等等!!!
这里来个分页的吧。
<?php
class page{
/*
实例:
$sql = "select count(*) from t_article";
$db->query($sql);
$db->next_record();
$recordcount = $db->f(0);//记录总数

$ofun = new page;
$ofun->pagearg = "pagenum";//设置分页参数名,默认为page
$ofun->ar = array("&laquo;首页", "&#8249;前页", "后页&#8250;", "末页&raquo;");//可以设置成图片HTML代码
$trunpage = $ofun->show_page($recordcount, 20);//得到分页信息

$sql = "select * from t_article order by tdate desc ".$ofun->limit;
$db->query($sql);
 */ var $pagecount;         //总页数

var $limit = "";        //分页时用到的limit参数

var $pagearg = "page";  //分页参数名称

var $ar = array("&laquo;首页", "&#8249;前页", "后页&#8250;", "末页&raquo;");
/*
 * 功能:分页函数
 * 参数 $recordcount 为记录总数
 * 参数 $pagesize 为每页显示记录数,默认为20
 */
function show_page($recordcount, $pagesize = 20){
$this->pagecount = ceil($recordcount/$pagesize);//总页数
//取得页码,默认为1
if(isset($_GET[$this->pagearg])){
if($_GET[$this->pagearg] <= 0) $page = 1;
else $page = $_GET[$this->pagearg];
}else {
$page = 1;
}
$str = "";
$urlar = $_GET;
unset($urlar[$this->pagearg]);
if($urlar){
foreach($urlar as $key=>$val){
if($str == "") $str = "?$key=$val";
else $str .= "&$key=$val";
}
$str .= "&$this->pagearg=";
}else{
$str = "?$this->pagearg=";
}
if($page > $this->pagecount) $page = $this->pagecount;

$this->limit = "limit ".($page-1)*$pagesize.",".$pagesize;

$trunpage = "";
if($page == 1){
$trunpage .= $this->ar[0]."&nbsp;".$this->ar[1]."&nbsp;";
}else {
$trunpage .= '<a href="'.$str.'1">'.$this->ar[0].'</a> <a href="'.$str.($page-1).'">'.$this->ar[1].'/a> ';
}
$trunpage .= "&nbsp;共[$recordcount]条记录/共[$this->pagecount]页&nbsp;";
if($page == $this->pagecount){
$trunpage .= $this->ar[2]."&nbsp;".$this->ar[3]."&nbsp;";
}else {
$trunpage .= ' <a href="'.$str.($page+1).'">'.$this->ar[2].'</a> <a href="'.$str.$this->pagecount.'">'.$this->ar[3].'</a>';
}
$select = "<select onchange='location.href=this.options[this.selectedIndex].value'>\n";
for($i = 1; $i <= $this->pagecount; $i++){
$select .= "<option value=\"".$str.$i."\">$i</option>\n";
}
$select .= "</select>";
return $trunpage.$select;
}

}
?>

解决方案 »

  1.   

    多谢kingerq(多菜鸟)兄的辛劳和坦诚,小弟发“请资深人士开讲座”系列帖子的本意是想和大家一起探讨一些PHP中常见的问题和难点,这其中小弟也了解一些理论和实作技巧,但对于深层次的东西,我还想学习得更多,我想这也是大家共同的心愿。
    PHP手册是个好东西,但是相比起来实作的经验和相互的交流更重要,上CSDN的朋友未必水平都一样,熟悉和精通的方向也不一样,开一系列集思广益的帖子,高手们多上一些实作的程序和个人的心得、体会、技巧,我认为这对大家都是有帮助的。
      

  2.   

    PHP几乎支持所有的数据库,从大型商用数据库Oracle,到mysql甚至SQLite,几乎无所不能,而且现在的ADODB也是我们可以和java程序员一样享受JDBC的乐趣了.
    以下是自己对数据库的一些感受,
    1. 数据库连接,如果考虑的数据库连接性能,如果访问量较多,可考虑使用永久性连接,这样对于提高程序整体性能非常有意义
    2. 对于返回多行的结果集,最好不要一次将所有结果全部都出,尤其对于oracle,另外如果只返回一行结果(多数情况),不要使用二维数组,这样PHP执行效率会有明显提升。
    3. 最好不要使用某一数据库的特殊特性,这样不利于代码移植.
    4. 如果是开发大型项目,而数据库移植的可能性也几乎没有,这样可能需要自己写一些数据库处理的类,对充分发挥数据库特性非常有用
      

  3.   

    此帖讨论题目太大了,数据库技术包括很多,而且不同的提供商提供的DBMS所支持的内容又各不相同,而且数据库的分类又有很大差别,我们现在最常用的是关系型数据库,除此之外,还有层次型数据库,网状数据库等等。讲讲最常用的关系型数据库吧,为什么叫关系型数据库呢?因为此种数据库是以关系模型和关系演算为基础的。一般的关系型数据库有内模式,模式和外模式,内模式为DBMS所管理的内容,模式通常意义上就是我们所说的表,而外模式通常就是指视图了。关系模型需要满足几类完整性约束,实体完整性,参照完整性,用户自定义完整性,域完整性,满足了这些完整性约束的关系模型才可以进行关系演算。关系演算包括和,差,连接等等。对于关系模型的规范化,有范式,一次为1NF,2NF,3NF,BCNF,4NF,5NF,满足范式越高,冗余越小,但是查询所涉及连接越多,查询越慢,反之效果相反。对于关系数据库的操作,有标准的SQL语言,SQL语言按照执行方式可为嵌入式的和独立式的,现在做的一般都是嵌入式的,按照语言功能又可以分为DDL DML DCL,数据定义语言(CREATE),数据管理语言(INSERT DELETE),数据控制语言( ?GRANT )。关系型数据库一般都支持事务,锁定等,事务就不说了,最基本的锁类型有 X排它锁 S共享锁 同操作系统相似,可以产生死锁和活锁,一旦产生要根据一定的(决策?)来解除,并且有机制避免死锁和活锁。就想到了这么多,基本是把数据库原理中能记住的东西复述出来了,看看有没有别的了。
      

  4.   

    中午吧,讲讲SQL SERVER 2000,比较熟至少能讲出来点东西了。
      

  5.   

    数据库?题目比较大。
    你指的是 数据库原理?某一具体的数据库产品?还是PHP+数据库?
    你可以根据楼上  runmin(阮)  兄讲得原理中,可以分别查看你所感兴趣的数据库产品的帮助文档
      

  6.   

    强烈推荐PostgreSQL!开源、免费,功能强大