学习目的:做一个分页显示 关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num 对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。 $execc="select count(*) from tablename "; $resultc=mysql_query($execc); $rsc=mysql_fetch_array($resultc); $num=$rsc[0]; 这样可以得到记录总数 ceil($num/10))如果一页10记录的话,这个就是总的页数 所以可以这么写 if(empty($_GET['page'])) { $page=0; } else { $page=$_GET['page']; if($page<0)$page=0; if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 } 这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; //一页是10记录的 最后我们需要做的就是几个连接: <a href="xxx.php?page=0">FirstPage</a> <a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> <a href="xxx.php?page=<?=($page+1)?>">NextPage</a> <a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> 这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
View Details学习目的:学会SESSION的使用 SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION; 然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。 下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。 登陆表单是这样:login.php <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> <tr class="tdbg"> <td colspan="2"><div align="center">Administrators Login</div></td> </tr> <tr class="tdbg"> <td><div align="center">Username</div></td> <td><div align="center"> <input name="username" type="text" id="username"> </div></td> </tr> <tr class="tdbg"> <td><div align="center">Password</div></td> <td><div align="center"> <input name="password" type="password" id="password"> </div></td> </tr> <tr class="tdbg"> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Clear"> </div></td>
View Details学习目的:学会添加删除修改数据 mysql_query($exec); 单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句 添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1′]."',".$_POST['item1'].")"; 删除:$exec="delete from tablename where…"; 修改:$exec="update tablename set item1=’".$_POST['item1′]."' where …"; 说到这里就要说一下表单和php变量传递,如果表单中的一个 <input name="item1" type="text" id="item1"> 表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1'] 是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者’来包围字符型字段。 我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。 今天就说到这里,大家可以DOWN一个SQL语句的参考手册,再研究研究。明天继续说SESSION。
View Details学习目的:学会读取数据 先看两个函数: 1、mysql_query 送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数 本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。 2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。 看一个简单的例子: $exec="select * from user"; $result=mysql_query($exec); while($rs=mysql_fetch_object($result)) { echo "username:".$rs->username." "; } ?> 当然,表user中有一个username的字段,这就类似asp中的 当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。 小小的两条命令可以完成读取数据的工作了,今天说到这里下一次说数据的添加删除修改。
View Details学习目的:学会连接数据库 PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册,总用的到。 我这里就简单说一下连接MYSQL数据库。 1、mysql_connect 打开 MySQL 服务器连接。 语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号,代表使用哪个端口与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。 2、 mysql_select_db 选择一个数据库。 语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数 本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。 最简单的例子就是: $conn=mysql_connect ("127.0.0.1", "", ""); mysql_select_db("shop"); 连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。 今天就说到这里,明天再说一下数据库的读取。
View Details学习目的:学会构建数据库 在ASP中,如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件,如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库,但是在PHP中,MY SQL的命令行编辑可能会令初学者感到很麻烦,不要紧,你下载一个PHPMYADMIN安装一下,以后建立编辑数据库可以靠它了。 下面说一下它的使用。 进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。 然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 在数据库 shop 中创建一个新表 : 名字 : 字段数 : 中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。 然后就可以开始建立表了。 第一栏是字段的名字;第二栏选择字段类型: 我们常用的是以下几个: 1)VARCHAR,文本类型 2)INT,整数类型 3)FLOAT,浮点数类型 4)DATE,日期型 5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。 建立了表以后,可以在左边看到你建立的表,点击以后,你可以: 1)按右边的结构:查看修改表结构 2)按右边的浏览:查看表中的数据 3)按右边的SQL:运行SQL语句 4)按右边的插入:插入一行记录 5)按右边的清空:删除表中所有记录 6)按右边的删除:删除表 还有一个很重要的功能就是导入和导出,当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,如果是ASP的ACCESS简单了,直接上传MDB文件即可,如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的PHPMYADMIN上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句即可。 今天就说到这里,明天继续说数据库操作。
View Details学习目的:掌握php的流程控制 1、if..else 循环有三种结构 第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: if (expr) { statement } 其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 范例:本例省略大括号。 <?php if ($state==1)echo "哈哈" ; ?> 这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 范例:本例的执行部分有三行,不可省略大括号。 <?php if ($state==1) { echo "哈哈 ; echo "<br>" ; } ?> 第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下: if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 <?php if ($state==1) { echo "哈哈" ; echo "<br>"; } else{ echo "呵呵"; echo "<br>"; } ?> 第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 直接看下面的例子 <?php if ( $a > $b ) { echo "a 比 b 大" ; } elseif ( $a == $b ) { echo "a 等于 b" ; } else { echo "a 比 b 小" ; } ?> 上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else […]
View Details在iis上配置PHP是一件很容易的事,只要稍作几部设置就可以完成iis整合php的设置!下面给大家介绍下iis下整合php的详细教程: 将PHP压缩包解压到某个位置,一般为 C:\PHP 将php.ini-dist改名为php.ini,放到C:\windows目录下,注意php.ini上的权限,如果虚拟主机设置了权限去除了windows目录下的users,那么复制过去的php.ini是没有权限的,所有dll会无法加载php.ini中修改 extension_dir = "C:\php\ext" 设置PHP存放扩展的dll文件的路径建立一个存放session的目录,比如为sessions在php.ini中修改 session.save_path = C:\php\sessions" 设置session存放在指定的这个目录建立一个存放上传文件的临时目录,比如为temp(要求该目录的父目录有列文件夹的权限,否则也会有权限问题)在php.ini中修改 upload_tmp_dir = "C:\PHP\temp"给整个PHP目录users的读权限,给sessions目录和temp目录的users的读写权限将output_buffering=Off改为output_buffering=On ,开启输出缓冲开启后可以解决一些网站打开报错或打开空白的情况,并且不会对其他正常网站造成不良影响。—————————————————————--开启常用的扩展,即去掉相应;extension=XXX.dll前面的分号下面为常用扩展extension=php_curl.dllextension=php_gd2.dll ;图形处理用,比如图片缩放,水印extension=php_mbstring.dll ;phpmyadmin需要extension=php_mcrypt.dllextension=php_mhash.dllextension=php_mssql.dll ;sqlserver需要extension=php_mysql.dll ;mysql需要extension=php_mysqli.dll ;同上extension=php_pdo.dllextension=php_pdo_mssql.dllextension=php_pdo_mysql.dllextension=php_pdo_sqlite.dll—————————————————————--ISAPI方式:在IIS的web服务扩展里,添加一条扩展指向C:\php\php5isapi.dll文件,设置为允许在IIS的“网站--主目录--配置--应用程序扩展”里,添加.php的扩展名指向C:\php\php5isapi.dll(与CGI方式二选一,建议使用此方法)给PHP目录加上users的读权限给整个PHP目录加上users的读权限(其实是需要加network service权限就可以),如果用ISAPI模式,是需要有这个权限的,CGI的不需要使用此方式,c:\windows\php.ini文件必须有network service的读权限。CGI方式:在IIS的web服务扩展里,添加一条扩展指向C:\php\php-cgi.exe文件,设置为允许在IIS的“网站--主目录--配置--应用程序扩展”里,添加.php的扩展名指向d:\php\php-cgi.exe(与ISAPI方式二选一,不建议)给PHP目录加上users的读权限php.ini里设置cgi.force_redirect = 0,这个值不设置时默认为1,用CGI必须设置为0—————————————————————--支持mysql除了开启php_mysql.dll扩展外,还要将PHP目录下的libmysql.dll复制到c:\windows\system32下支持MSSQL(可以不设置)除了开启php_mssql.dll扩展外,还要将ntwdblib.dll文件复制到c:\windows\system32下注意:PHP里自带的这个文件的版本不对,是连接不了的,要使用所连接的SQL Server安装目录下的ntwdblib.dll文件的版本。2000数据库对dll文件版本有要求,2005的话,似乎用任意版本的dll都可以连。—————————————————————--支持curl除了php.ini开启curl扩展外,还要将libeay32.dll, ssleay32.dll这两个文件放到system32文件夹下才可以 —————————————————————-- 支持mcrypt除了php.ini开启mcrypt扩展外,还要将libmcrypt.dll放到system32文件夹下才可以 —————————————————————-- 其他设置一般为默认不动,用户需要时再设置post_max_size = 8M 默认是8Mupload_max_filesize = 2M 默认是2M开启全局变量register_globals = Off 默认不开启加大超时时间限制max_execution_time = 30 默认是30秒 或者设置其他内容等 按照以上的方法做完以后,如果可以打开php页面的话,那么说明你的iis下整合php配置成功了 本文章由中国数据(www.zgsj.com)--http://zhidao.zgsj.com原创,转载请保留此句
View DetailsZend Studio简介 Zend Studio是Zend Technologies开发的PHP语言集成开发环境(Integrated Development Environment IDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。Zend Studio5.5系列后,官方推出利用了Eclipse平台,基于PDT的Zend Studio for Eclipse 6.0,之后的版本也都构建于Eclipse。 Zend Studio是屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。 Zend Studio特点 1.快速代码开发与配置本地和远程调试器; 2.数据库连通性 & SQL工具 团队合作环境; 3.完全 PHP 4/PHP 5 切换 PHPDocs/PHP文档处理程序支持SFTP, FTP以至SSH的安全连接 100个以上代码摘录; 4.50个以上样品数据库应用程序 与Zend Platform组合。 Zend Studio产品特征 Zend Studio 设计时考虑了商务应用开发的需要,是开发者利用PHP创造强有力数据库应用软件的完美开发环境。Zend Studio 具有专业和企业开发者开发、配置、调试和管理关键商务PHP应用的易使用性、可伸缩性、可靠性和扩展性。 1.PHP最强有力的开发环境提高生产力:通过完全的PHP5支持、编码分析器、编码组合功能、语法检索、项目管理器、编码编辑器、绘图调试器(向导)。超强智能编码:具备新的和更优秀的分析和优化工具像PHP编码检测器,。PHP的标准记录工具--PHP文档记录器:非常容易记录PHP代码、程序应用和方案。FTP和SFTP组合简化配置,使开发者安全地从远程服务器灵活的上载和下载项目文件。 2.高水平的商务应用开发直接链接最广泛使用的专业数据库,像IBMDB2/Cloudscape/Derby、MySQL、Oracle、MicrosoftSQL Server, PostgreSQL和 SQLite。通过使用带 SQL92 和 语法检索支持的Zend SQL Query Editor,到被链接服务器上进行写和执行程序的访问。用 Zend SQL Explorer 观看数据库结构和管理内容。 3.PHP完整的调试环境先进的调试特征优势,包括:Conditional Breakpoints, Stack Trace View, Advanced Watches, Variables and Output Buffer利用最强大的PHP调试器在本地或远程调试本地的环境。对于本地调试或者是基于互联网的远程调试都能够确保安全连接用“一次点击浏览器调试”从浏览器直接调试和分析编码。 4.强有力的团队开发和管理工具从 Zend Studio 内直接应用 CVS,通过有效地管理源代码 ,容易进行团队的开发与合作。利用综合性能编辑器,监视访问功能,优化应用程序的总体性能。Zend Studio 与 Zend Platform 结合使用时,可以实时获得代码和脚本性能的反馈。ZEND STUDIO 为流行的 SQL 数据库包括 […]
View DetailsZend Framework (简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。 Zend Framework 是用于 PHP 开发 Web 应用程序和 Web Service 程序的高品质开源框架。 利用 PHP 自身特性,Zend Framework 有很高的易用性和强大的功能。它提供了先进、健壮和安全的开发网站的解决方案。 ZF中的组件可以独立使用,但如果将它们组合起来,就形成了一个强大而可扩展的web开发框架。 ZF 提供了强壮而高效的 MVC实现,易于使用的数据库摘要和实现 HTML 表单解析、校验和过滤的表单组件,这样 开发者可以通过这些易用的、面向对象的接口联合所有这些操作。其它组件如 Zend_Auth和 Zend_Acl通过通用 的证书(credential)存储提供用户认证和授权。还有其它实现的客户库来简化访问最流行的可用的 web 服务。 不论你的程序需要什么,你都可能从 Zend Framework 中找到经过全面和严格测试的组件来使用,可以极为有效地减少开发时间。 Zend Framework 项目的主要赞助者是 Zend Technologies,但许多 其它公司也贡献了组件或重大功能。例如 Google、 Microsoft 和 StrikeIron 作为伙伴提供了 web 服务接口和其它 希望给 Zend Framework 开发者使用的技术。 没有活跃的 ZF 社区,Zend Framework 就不能交付和支持所有这些功能。社区成员包括贡献者都可以在这些地方找到: mailing lists, IRC channels 和其它论坛。无论你有什么关于 ZF 的问题,在社区里总能找到答案。 代码完全采用PHP5 面向对象编写;丰富完善的组件支持;良好的 Ajax 支持; 模块化的结构设计,易于扩展;完善的文档资料;灵活的架构设计; MVC是提高程序的可维护性的方法:将这个程序代码分为MVC三个部分 模型 关心的是欲显示的数据细节。关注的应用程序的业务逻辑部分,关注的是如何使用数据库来读取和保存数据。 […]
View Details