php分页显示类——在线拍卖行(1)
来源:互联网 发布:浙师大行知学院兰溪 编辑:程序博客网 时间:2024/04/29 23:22
`自己周末做了一个在线拍卖行,虽然没有很好看的界面,但是上架商品,竞价,展示商品,展示热门商品等已经都有了,自己现在把里面用到的东西一点点写出来为以后复习用。
首先就是一个php的分页显示的类:
<!--myDataGridClass.php:数据分页显示类------------------------------------><?php/********************************************* 类名: myDataGridClass功能:分页显示MySQL数据库中的数据 ***********************************************/ class myDataGridClass{ //属性 var $sql; //所要显示数据的SQL查询语句 var $max_line; //每页显示最多行数 var $begin_record; //所要显示记录的首行序号 var $total_records; //记录总数 var $current_records; //本页读取的记录数 var $result; //读出的结果 var $total_pages; //总页数 var $current_page; //当前页数 var $arr_page_query; //数组,包含分页显示需要传递的参数 //方法/********************************************* 构造函数:__construct()输入参数: $pmax_line:每页显示最多行数 ***********************************************/ function myDataGridClass($pmax_line){ $this->max_line=$pmax_line; $this->begin_record=0;} /********************************************* 构造函数:__destruct()输入参数: ***********************************************/ function __destruct(){}/********************************************* get函数:__get()***********************************************/ function __get($property_name){ if(isset($this->$property_name)) { return($this->$property_name); } else { return(NULL); } }/********************************************* set函数:__set()***********************************************/ function __set($property_name, $value) { $this->$property_name = $value; } /********************************************* 函数名:read_data功能: 根据SQL查询语句从表中读取相应的记录返回值:属性二维数组result[记录号][字段名]***********************************************/ function read_data(){ $psql=$this->sql; if(isset($_GET['begin_record'])) $this->begin_record=$_GET["begin_record"]; else $this->begin_record=0; //查询数据,数据库链接等信息应在类调用的外部实现 $result=mysql_query($psql) or die(mysql_error()); $this->total_records=mysql_num_rows($result); //利用LIMIT关键字获取本页所要显示的记录 if($this->total_records>0) { $psql=$psql. " LIMIT ".$this->begin_record." , ".$this->max_line; $result=mysql_query($psql) or die(mysql_error()); $this->current_records=mysql_num_rows($result); //将查询结果放在result数组中 $i=0; while($row=mysql_fetch_Array($result)) { $this->result[$i]=$row; $i++; } }}/********************************************* 函数名:navigate()功能: 显示首页、下页、上页、未页***********************************************/ function navigate() { //获取总页数、当前页信息 $this->total_pages=ceil($this->total_records/$this->max_line); $this->current_page=$this->begin_record/$this->max_line+1; echo "<div align=center>"; echo "<font color = red size ='4'>第".$this->current_page."页/共".$this->total_pages."页</font>"; echo " "; //获取将要导航到的分页的初始记录号 $first=0; $next=$this->begin_record+$this->max_line; $prev=$this->begin_record-$this->max_line; $last=($this->total_pages-1)*$this->max_line; //生成导航链接 if($this->begin_record>=$this->max_line) echo "<A href=".$_SERVER['PHP_SELF']."?begin_record=".$first.">首页</A>|"; if($prev>=0) echo "<A href=".$_SERVER['PHP_SELF']."?begin_record=".$prev.">上一页</A>|"; if($next<$this->total_records) echo "<A href=".$_SERVER['PHP_SELF']."?begin_record=".$next.">下一页</A>|"; if($this->total_pages!=0 && $this->current_page<$this->total_pages) echo "<A href=".$_SERVER['PHP_SELF']."?begin_record=".$last.">末页</A>"; echo "</div>";} } ?>
当然还可能有些小问题,但是里面自己加上去的是这几行,实际上感觉还蛮关键的,php一般的话不用这种方式好像变量并不能直接传到到新的界面上去:
if(isset($_GET['begin_record'])) $this->begin_record=$_GET["begin_record"]; else $this->begin_record=0;
display 函数就是调用这个类:
<!--display_goods.php:显示商品页面----------------------------><?php //包含分页显示类include "myDataGridClass.php";//global $view;/******************************************函数名: display_goods()功能: 显示所有商品******************************************/function display_goods(){ //全局分页显示对象 global $view; $DBHOST="localhost"; $DBUSER="root"; $DBPWD=""; $DBNAME="auction"; //连接数据库 //include "sys_conf.inc"; $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD); mysql_select_db($DBNAME); //只显示没有结束竞标的商品 $time=time(); $view->__set("sql","select * from goods where endtime>'$time' order by gid desc"); //读数据 $view->read_data(); //如果数据为空,则返回 if($view->current_records==0) { echo "<tr><td colbegin_record=4> </td></tr>"; return; } //数据不为空,显示数据 echo "<table width='80%' border='0' align='center'>"; echo "<tr bgcolor='green'>"; echo "<td>商品名</td>"; echo "<td>结束时间</td>"; echo "<td>当前最高价格</td>"; echo "<td>出价人数</td>"; echo "</tr>"; for($i=0;$i<$view->current_records;$i++) { if(ceil($i/2)*2==$i) $bgc="white"; else $bgc="yellow"; echo "<tr bgcolor=$bgc><td>"; echo "<a href=detail.php?gid=".$view->result[$i]["gid"].">".$view->result[$i]["name"].$view->result[$i]["gid"]."</a>"; echo "</td><td>"; echo $view->result[$i]["endtime"]; echo "</td><td>¥"; echo $view->result[$i]["current_price"]; echo "</td><td>"; echo $view->result[$i]["reply_num"]; echo "</td></tr>"; } echo "</table>"; //关闭数据库 mysql_close($link_id);} //*********显示最热的10条记录********** function displsy_top10(){ //全局分页显示对象 global $view; $DBHOST="localhost"; $DBUSER="root"; $DBPWD=""; $DBNAME="auction"; //每页显示记录数 $PAGE_MAX_LINE=5; //连接数据库 //include "sys_conf.inc"; $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD); mysql_select_db($DBNAME); //显示出价者最多的10个商品 $view->__set("sql","select * from goods order by reply_num desc"); //读数据 $view->read_data(); //如果数据为空,则返回 if($view->current_records==0) { echo "<tr><td colbegin_record=4> </td></tr>"; return; } //数据不为空,显示数据 echo "<table width='80%' border='0' align='center'>"; echo "<tr bgcolor='green'>"; echo "<td>商品名</td>"; echo "<td>结束时间</td>"; echo "<td>当前最高价格</td>"; echo "<td>出价人数</td>"; echo "</tr>"; for($i=0;$i<$view->current_records;$i++) { if(ceil($i/2)*2==$i) $bgc="white"; else $bgc="yellow"; echo "<tr bgcolor=$bgc><td>"; echo "<a href=detail.php?gid=".$view->result[$i]["gid"].">".$view->result[$i]["name"]."</a>"; echo "</td><td>"; echo $view->result[$i]["endtime"]; echo "</td><td>¥"; echo $view->result[$i]["current_price"]; echo "</td><td>"; echo $view->result[$i]["reply_num"]; echo "</td></tr>"; } echo "</table>"; //关闭数据库 mysql_close($link_id); } //*********显示最新10条记录*********** function displsy_latest10(){ //全局分页显示对象 global $view; $DBHOST="localhost"; $DBUSER="root"; $DBPWD=""; $DBNAME="auction"; //$PAGE_MAX_LINE=5; //连接数据库 //require_once("sys_conf.inc"); //系统配置文件,包含数据库配置信息 $link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD); mysql_select_db($DBNAME); //显示最新的10个商品 $view->__set("sql","select * from goods order by gid desc"); //读数据 $view->read_data(); //如果数据为空,则返回 if($view->current_records==0) { echo "<tr><td colbegin_record=4> </td></tr>"; return; } //数据不为空,显示数据 echo "<table width='80%' border='0' align='center'>"; echo "<tr bgcolor='green'>"; echo "<td>商品名</td>"; echo "<td>结束时间</td>"; echo "<td>当前最高价格</td>"; echo "<td>出价人数</td>"; echo "</tr>"; for($i=0;$i<$view->current_records;$i++) { if(ceil($i/2)*2==$i) $bgc="white"; else $bgc="yellow"; echo "<tr bgcolor=$bgc><td>"; echo "<a href=detail.php?gid=".$view->result[$i]["gid"].">".$view->result[$i]["name"]."</a>"; echo "</td><td>"; echo $view->result[$i]["endtime"]; echo "</td><td>¥"; echo $view->result[$i]["current_price"]; echo "</td><td>"; echo $view->result[$i]["reply_num"]; echo "</td></tr>"; } echo "</table>"; //关闭数据库 mysql_close($link_id); } //主程序 include("head.html"); //include "sys_conf.inc"; //实例化myDataGridClass对象$PAGE_MAX_LINE=5;$view=new myDataGridClass($PAGE_MAX_LINE); //初始化所要显示的具体记录 if(isset($begin_record)) $view->__set("begin_record",$begin_record); else $view->__set("begin_record",0); //显示商品列表 if(!isset($task) || $task=="") { display_goods(); $view->navigate(); } else if($_GET['task']=="topten") { displsy_top10(); } else if($_GET['task']=="latestten") { displsy_latest10(); } ?>
当然还有head头部:
<br><div align=center><a href=login.php>|登录|</a><a href=add_goods.php>|添加商品|</a><a href=display_goods.php>|商品列表|</a><a href=display_goods.php?task=topten>|HOT商品|</a><a href=display_goods.php?task=latestten>|最新商品|</a><a href=about:blank>|退出系统|</a></div><br>
当然注意include那个地方,自己实际上不知道为什么include的不管用(下面还是会说变量未定义),然后自己只能都重新写一遍了…希望有热心的网友可以帮忙解答一下~
0 0
- php分页显示类——在线拍卖行(1)
- 竞拍价格这个过程——在线拍卖行(2)
- 用户登录与处理——在线拍卖行(3)
- 上传界面——在线拍卖行(4)
- PHP分页显示类
- PHP分页导航显示类
- PHP+Mysql————数据分页显示技术
- Android listview分页显示——data from php
- 全站查询和分页显示——在线留言板2
- 分页显示详解(with php)
- PHP分页显示详解
- PHP 分页显示制作
- php分页显示代码
- php分页显示代码
- php分页显示代码
- php分页显示例子
- php+mysql 分页显示函数
- PHP+MySQL基本分页显示
- tiny6410无法使用usb下载功能的解决办法
- struts2中OGNL表达式
- myeclipse 自动提示JS
- C#源代码计算器
- 常用java术语
- php分页显示类——在线拍卖行(1)
- 聚类分析(Clustering Analysis)
- 23种设计模式(Facade模式)
- 竞拍价格这个过程——在线拍卖行(2)
- 关于凸函数求最大值的下标的小讨论(斐波那契优选法/二分法/三分法)
- LeetCode – Distinct Subsequences Total
- 培养成都网页设计学员应该注意以做为主
- 从哪里手机同行业仿站的数据呢?
- HttpHandler与HttpModule