仓酷云

标题: PHP网页编程之求php的mssql翻页法式! [打印本页]

作者: 因胸联盟    时间: 2015-2-4 00:27
标题: PHP网页编程之求php的mssql翻页法式!
即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。法式|翻页   PHP代码:--------------------------------------------------------------------------------

<html>
<head>
<title>PHP分页</title>
</head>
<body>
<?
//为了便于了解和更快地使用到任务中去,咱们以MS SQL Server的NorthWind数据库Customers表为例。

$pageSize= 4; //每页显示的纪录数
$hostname = "localhost"; //MSSQL Server
$dbuser = "sa"; //用户名
$dbpasswd = ""; //暗码

//毗连数据库
$conn = mssql_connect($hostname,$dbuser,$dbpasswd) or die("没法毗连数据库办事器!");

//选择数据库,为了便利,这里以MSSQL Server的pubs数据库为例
$db = mssql_select_db("NorthWind",$conn) or die("没法毗连数据库!");

//以Customers表为例,构建查询字符串
$sql = "SELECT * FROM Customers";

//履行查询语句
$res = mssql_query($sql) or die("没法履行SQL:$sql");

//$page变量标示以后显示的页
if(!isset($page)) $page=1;
if($page==0) $page=1;

//失掉以后查询到的记载数 $totalNum
$totalNum= mssql_num_rows($res);
if($totalNum<=0)
{
echo "<p align=center>没有记载";
exit;
}

//失掉最大页码数maxPage
$maxPage = (int)ceil($totalNum/$pageSize);

if((int)$page > $maxPage)
$page=$maxPage;

?>
<table align="center" width="90%" border="1" cellspacing="2" cellpadding="2">
<tr bgcolor="#F7F2ff">
<?
//显示表格头
for($i = 0; $i < mssql_num_fields($res); $i++)
{
echo "<td>".mssql_field_name($res,$i)."</td>" ;
}
?>
</tr>
<?
//依据偏移量($page - 1)*$pageSize,应用mssql_data_seek函数失掉要显示的页面
if( mssql_data_seek($res,($page-1)*$pageSize) )
{
$i=0;
//轮回显示以后记载集
for($i;$i<$pageSize;$i++){
echo "<tr>";

//失掉以后记载,填充到数组$row;
$row= mssql_fetch_row($res);
if($row)
{
//轮回显示以后记载的一切字段值
for($j = 0;$j < count($row);$j++)
{
echo "<td>".$row[$j]."</td>";
}
}
echo "</tr>";
}
}
?>
</table>
<br>
<hr size=1>
<?
$style = "2";
switch($style)
{
//格局: [首页] [上页] [下页] [末页]
case "1":
{
$out = "<div align=center>";
$out .= "[共".$maxPage."页]  [第".$page."页]  ";

//首页和上页的链接
if( $totalNum>1 && $page>1)
{
$prevPage=$page-1;
$out .= " <a href=$PHP_SELF?page=1>[首页]</a>  ";
$out .= " <a href=$PHP_SELF?page=$prevPage >[上页]</a>  ";
}

//下页和末页的链接
if( $page>=1 && $page<$maxPage)
{
$nextPage= $page+1;
$out .= " <a href=$PHP_SELF?page=$nextPage >[下页]</a>  ";
$out .= " <a href=$PHP_SELF?page=$maxPage>[末页]</a>";
}
$out .= "</div>";
echo $out;
}
break;

//格局: 1 2 3 4 5
case "2":
{
$linkNum = "4";//页面上显示毗连的个数显示
$out = "<div align=center>第 ";
$start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";
$end = ($page+round($linkNum/2))<$maxPage ? ($page+round($linkNum/2)) : $maxPage;
if($page<>1)
$out .= "<a href='?page=1' alt='首页'>1</a>  <<  ";
//for($t=1;$t<=$maxPage;$t++)
for($t=$start;$t<=$end;$t++)
{
$out .= ($page==$t) ? "<font color='red'><b>".$t."</b></font>  " : "<a href='?page=$t'>$t</a>  ";
}
if($page<>$maxPage)
$out .= ">>  <a href='?page=$maxPage' alt='末页'>$maxPage</a>";
$out .= " 页</div>";
echo $out;
}
break;

//select下拉框直接跳转
case "3":
{
$out = "<div align=center>";
$out .= "第 <select onchange=\"location='?page='+this.options[this.selectedIndex].value\">";
for($i=1; $i<=$maxPage; $i++) {
$out .= "<option value='$i'".(($i==$page) ? ' selected' : '').">$i</option>";
}
$out .= "</select> 页";
$out .= "</div>";
echo $out;
}
break;
default:
echo "";
break;
}

?>
</body>
</html>
  可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。
作者: 若天明    时间: 2015-2-4 13:10
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: admin    时间: 2015-2-9 23:05
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 变相怪杰    时间: 2015-2-22 20:15
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 飘飘悠悠    时间: 2015-3-2 15:43
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 乐观    时间: 2015-3-6 23:43
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 再现理想    时间: 2015-3-20 20:50
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 简单生活    时间: 2015-3-28 21:13
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 因胸联盟    时间: 2015-4-3 22:43
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 兰色精灵    时间: 2015-4-6 23:11
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 山那边是海    时间: 2015-6-4 17:04
当然这种网站的会员费就几十块钱。
作者: 海妖    时间: 2015-6-11 20:00
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 深爱那片海    时间: 2015-6-19 20:51
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 飘灵儿    时间: 2015-6-23 20:28
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 小妖女    时间: 2015-7-3 02:12
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 仓酷云    时间: 2015-7-4 01:07
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 活着的死人    时间: 2015-7-4 22:40
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 金色的骷髅    时间: 2015-7-7 01:20
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 莫相离    时间: 2015-7-13 23:46
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 灵魂腐蚀    时间: 2015-7-20 00:23
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2