1、前言
分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。
2、原理
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?
现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from tabl ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......
卸载Mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本,刚是rpm安装;不返回php版本则是二进制安装。
比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
rpm –e mysql-server
说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
[root@localhost ~]# rpm –e mod_auth_mysql
卸载Apache
[root@localhost ~]# rpm -qa | grep httpd
httpd-manual-2.2.9-4.i386
httpd-tools-2.2.9-4.i386
httpd-devel-2.2.9-4.i386
httpd-2.2.9-4.i386
[root@localhost ~]# rpm -e httpd --nodeps
[root@localhost ~]# rpm -e httpd-devel --nodeps
[root@localhost ~]# rpm -e httpd-tools --nodeps
[root@localhost ~]# rpm -e httpd-manual --nodeps
卸载PHP
[root@localhost ~]# r ......
卸载Mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本,刚是rpm安装;不返回php版本则是二进制安装。
比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
rpm –e mysql-server
说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
[root@localhost ~]# rpm –e mod_auth_mysql
卸载Apache
[root@localhost ~]# rpm -qa | grep httpd
httpd-manual-2.2.9-4.i386
httpd-tools-2.2.9-4.i386
httpd-devel-2.2.9-4.i386
httpd-2.2.9-4.i386
[root@localhost ~]# rpm -e httpd --nodeps
[root@localhost ~]# rpm -e httpd-devel --nodeps
[root@localhost ~]# rpm -e httpd-tools --nodeps
[root@localhost ~]# rpm -e httpd-manual --nodeps
卸载PHP
[root@localhost ~]# r ......
卸载Mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本,刚是rpm安装;不返回php版本则是二进制安装。
比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
rpm –e mysql-server
说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
[root@localhost ~]# rpm –e mod_auth_mysql
卸载Apache
[root@localhost ~]# rpm -qa | grep httpd
httpd-manual-2.2.9-4.i386
httpd-tools-2.2.9-4.i386
httpd-devel-2.2.9-4.i386
httpd-2.2.9-4.i386
[root@localhost ~]# rpm -e httpd --nodeps
[root@localhost ~]# rpm -e httpd-devel --nodeps
[root@localhost ~]# rpm -e httpd-tools --nodeps
[root@localhost ~]# rpm -e httpd-manual --nodeps
卸载PHP
[root@localhost ~]# r ......
(PHP 4 >= 4.0.4)
功能说明:Check for numeric character(s)
Description
bool ctype_digit ( string text)
Returns TRUE if every character in text is a decimal digit, FALSE otherwise.
例子 1. A ctype_digit() example
<?php $strings = array('1820.20', '10002', 'wsl!12'); foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
} ?>
This example will output :
The string 1820.20 does not consists of all digits. The string 10002 consists of all digits. The string wsl!12 does not consists of all digits.
PHP函数:ctype_xdigit
(PHP 4 >= 4.0.4)
功能说明:Check for character(s) representing a hexadecimal digit
Description
bool ctype_xdigit ( string text)
Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.
例子 1. A ......
编写关于 PHP 的系列文章让我更加深刻地了解了 PHP 开发人员的世界。我和许多 PHP 程序员交谈过,最令我惊奇的是只有很少的人使用 IDE。大多数程序员使用文本编辑器,比如 Microsoft® Windows® 上的记事本、Emacs 或者 Vim。
我提到的这些文本编辑器(以及我没提到)都是很不错的 —— 我不想讨论哪个编辑器更好。但是,我要强调的是不使用文本编辑器会使您对 PHP 代码有更深的见解。几乎所有人都将 PHP 项目视为只不过是文件目录而已(这种看法十分片面)。现在就让我带您进入 IDE 的世界,向您展示 IDE 能够 —— 或者应该 —— 给您带来什么,并向您介绍七个最流行的 IDE。
简而言之,IDE 为编码工作提供了一站式服务。IDE 包括一个编辑器,在此编辑器内可以编辑代码、调试代码、在浏览器(通常是嵌入式的)中查看代码和签入和签出源码控制。为了支持这些功能,IDE 拥有一套在基本编辑器(比如记事本或者 Vim)中所找不到的特性。当然,您可以通过扩展编辑器来实现这些功能,但是 IDE 在一个精简软件包中囊括了所有这些功能 —— 并都已预配置:
项目IDE 的一个关键特性是它把一个 PHP 应用程序看作是一个项目, ......
今天又突然发现了一个技巧,就是PHP可以传值给js,如何做呢?
原来PHP的原理是这样的:
PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程:
(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。
(2)WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给PHP引擎程序。
(3)PHP引擎程序(一般为PHP.exe)将会对WEB服务器传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态地生成相应的HTML页面。
(4)PHP引擎将生成HTML页面返回给WEB服务器。WEB服务器再将HTML页面返回给客户端浏览器。
那么如果说PHP要传递一个值给HTML的JS脚本,如何操作?可以先在需要用到的变量前定义,如下面例子:
<?php
$test = "var a = ".$_GET['test'].";";
?>
<mce:script type="text/javascript"><!--
<?php
echo $test;
?>
alert(a);//这里就可以把a取出来了。而且a的值是来源于用户的GET请求
// --></mc ......