社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 社区论坛任务 迷你宠物
  • 3494阅读
  • 9回复

[讨论](转)十天学会PHP

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
第一天 dSdP]50M  
以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 MKdS_&F;~  
HACY  
至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 p* '%<3ml  
3bWYRW  
下面简单介绍一下PHP的语法。 )Bz2-|\  
/5**2Kgv1  
1、嵌入方法: J&hzr t  
a9f!f %9  
类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 M53{e;.kN  
w(,K  
2、引用文件: 'R-Ly^:Qd  
UrC>n  
引用文件的方法有两种:require 及 include。 N}|<P[LW  
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 g$^:2MT"aQ  
1')_^]  
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 [ClDKswq  
2`Dqu"TWh  
3、注释方法: H$@5\pP>  
E%.w6-  
<?php i(Xz3L#(  
echo "这是第一种例子。 " ; // 本例是 C++ 语法的注释  L- '{   
/* 本例采用多行的 l_q=@y  
注释方式 */ &EUI  
echo "这是第二种例子。 " ; d O})#50f  
1QA{NAnu&  
echo "这是第三种例子。 " ; # 本例使用 UNIX Shell 语法注释 v47S9Vm+  
?> V(6*wQ`&  
sxK|0i}6  
4、变量类型: tyI !y~-z  
$`a>y jma  
$mystring = "我是字符串" ; >b1#dEY  
$NewLine = "换行了 " ; a1 Kh  
$int1 = 38 ; q HU}EEv  
$float1 = 1.732 ; w=;Jj7}L  
$float2 = 1.4E+2 ; }CM</  
$MyArray1 = array( "子" , "丑" , "寅" , "卯" ); z+5ZUS2~&  
R(^2+mV?  
这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 7A,lQh  
xs}3=&c(  
5、运算符号: _o+z#Fnz  
M+|J;caX  
数学运算: 符号 意义 DN X-\  
+ 加法运算 7Rq|N$y.3  
- 减法运算 n5NwiSE  
* 乘法运算 2 -C*RHRx  
/ 除法运算 I$y6N"|  
% 取余数 QjIn0MJ)Xm  
++ 累加 @CB&*VoB  
-- 递减 S|K#lL  
2{Johqf  
字符串运算: *+UgrsRk  
E2nsBP=5C  
运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& rlpbLOG`  
<? G u4mP  
n OQvBc  
$a = "PHP 4" ; AY(z9 &;6  
$b = "功能强大" ; \*+-Bm:$j  
echo $a.$b; o,q47W=7$  
?> yQ03&{#  
这里也引出两个问题,首先PHP中输出语句是echo,第二类似ASP中的<%=变量%>,PHP中也可以<?=变量? >。 o0)k5P~<~  
Lu.C+zgQ  
逻辑运算: @ L=dcO{r  
J$>9UC k7B  
符号 意义 k|r|*|8  
< 小于 %7wNS  
> 大于 9j8<Fs0M  
<= 小于或等于 -Pt']07E  
>= 大于或等于 = }!4%.$  
== 等于 IQ] tcSQl  
!= 不等于 sy(8-zbI  
&& 而且 (And) !uc"|S?  
and 而且 (And) K\VL[HP-  
|| 或者 (Or) wfMtWXd;KB  
or 或者 (Or) ]n 'FD|  
xor 异或 (Xor) L5RBe  
! 不 (Not) #wS/QrRE  
U3tA"X.K  
今天就说到这里,明天说一下流程控制。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 9 发表于: 2006-09-03
学习目的:学会用PHP上传文件和发邮件 \\(3gB.Gd  
x@Ze%$'  
上传文件表单必须加上 enctype="multipart/form-data" '\wZKY VN  
和 <input type="file" name="file"> hhr!FQ.+/  
下面看一下代码: Naa "^  
d) $B  
$f=&$HTTP_POST_FILES['file']; g5[r!XO  
$dest_dir='uploads';//设定上传目录 o/\f+iz7  
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复 5)=YTUCk  
$r=move_uploaded_file($f['tmp_name'],$dest); XNaiMpp'  
chmod($dest, 0755);//设定上传的文件的属性 &fRZaq'2R  
=8W'4MC  
上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键 RA3!k&8?#  
=C4!h'hz  
至于发邮件就更加简单,可以使用mail()函数 p->b Vt  
zy\R>4i'#Q  
mail("收件人地址","主题","正文","From:发件人 Reply-to:发件人的地址"); "eH.<&  
P>wTp)  
不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。 (&@,ZI;  
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。 =;m;r!,K  
di|5|bn7  
十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 8 发表于: 2006-09-03
学习目的:注意事项 gbr-C  
Jf3xK"in  
因为我是先学ASP的,所以再做PHP的时候会发现很多地方需要适应。 <c_'(   
SUaXm#9  
1、注意不要漏了分号 A[8vD</}_  
2、注意不要漏了变量前的$ c 0.? d]  
3、使用SESSION的时候注意不要遗漏session_start(); !McRtxq?~  
`Qxdb1>mjY  
如果发生错误的时候,可以采用以下方法: .?dYY;P  
1、如果是SQL语句出错,就注释了然后输出SQL语句,注意也要注释调后续的执行SQL语句 XM:Y(#?l  
2、如果是变量为空,大多是没有传递到位,输出变量检查一下,检查一下表单的id和name qGhwbg  
3、如果是数据库连接出错,检查是否正确打开MY SQL和是否遗漏了连接语句 ]s>y se  
4、注意缩进,排除括号不区配的错误 <d] t{M62W  
m-AW}1:\f  
在做大网站的时候,我的思路是先构建数据库,确定每一个字段的作用,和表之间的关系。然后设计后台界面,从添加数据开始做起,因为添加是否成功可以直接到数据库里面验证,做好了添加再做显示的页面,最后才是两者的结合。一般来说后台就包括添加删除修改和显示,后台没有问题了,前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。 a[hQ<@1O  
8=DZ;]XD.  
好了,今天说到这里,明天说一下如果用PHP上传文件和发邮件。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 7 发表于: 2006-09-03
学习目的:做一个分页显示 ~7O.}RP0  
<:!;79T\  
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num OD yKS;   
t<H@c9{;*  
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。 =q"o%dc`R  
_d*QA{  
$execc="select count(*) from tablename "; jrLV\(p  
$resultc=mysql_query($execc); 0s o27k  
$rsc=mysql_fetch_array($resultc); t(r}jU=qw  
$num=$rsc[0]; k35E,?T  
Tp&7CNl|  
这样可以得到记录总数 tXW7G@  
ceil($num/10))如果一页10记录的话,这个就是总的页数 !v?WyGbUg  
. yN.  
所以可以这么写 Xb\de_8!  
if(empty($_GET['page'])) NKRI|'Y,  
{ AEO7I f@  
$page=0; $G D@e0  
} *^s^{0Ad  
else &A)u!l Ue  
{ %P HYJc  
$page=$_GET['page']; %?i~`0-:n%  
if($page<0)$page=0; BU=;rz!;  
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 h$2lO^  
} *sYvV,  
vi~NfD@s  
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; Cy2)M(RW  
//一页是10记录的 .e1Yd8  
k^ e;V`(  
最后我们需要做的就是几个连接: [;,Xp/  
<a href="xxx.php?page=0">FirstPage</a> gkMyo`  
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> QNxY`  
<a href="xxx.php?page=<?=($page+1)?>">NextPage</a> 2NvbQ 3c5  
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> df@G+v0_1  
u[+/WFH  
这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 6 发表于: 2006-09-03
学习目的:学会SESSION的使用 o8!uvl}:9  
7>!Rg~M  
SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION; l2 mO{'|C  
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。 dH_g:ocA  
4elA<<  
下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。 Jx3fS2  
登陆表单是这样:login.php ! w2BD^V-  
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">  >Q% FW  
<tr> ^Y?Y5`! Q  
<form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> ,;k`N`#'  
<tr class="tdbg"> /^Ng7Mi!  
<td colspan="2"><div align="center">Administrators Login</div></td> ![3l K  
</tr> rJUXIV>z  
<tr class="tdbg"> vD3j(d  
<td><div align="center">Username</div></td> SU>cJ*  
<td><div align="center"> <MzXTy3\  
<input name="username" type="text" id="username"> oa2v/P1`  
</div></td> Pt[ b;}  
</tr> L6n<h  
<tr class="tdbg"> hB??~>i3  
<td><div align="center">Password</div></td> p$_X\,F  
<td><div align="center"> P?$Iht.^  
<input name="password" type="password" id="password"> ix!4s613w  
</div></td> a`_w9r+v  
</tr> (M nK \^Y  
<tr class="tdbg"> qfa[KD)!aB  
<td colspan="2"><div align="center"> xXfFi5Eom  
<input type="submit" name="Submit" value="Submit"> H`EsFKw\%  
<input type="reset" name="Submit2" value="Clear"> $Fik]TbQp  
</div></td> ,Uu#41ZOKL  
</tr> 6):iu=/i/  
</table></td></form> q~G@S2=}0}  
</tr> 1rGi"kdf  
</table> = @n`5g  
1,Ji|&Pwf  
处理文件是这样 .j^=]3  
<? cC7&]2X +f  
require_once('conn.php'); w i=&W  
session_start(); 1qd(3A41  
$username=$_POST['username']; d6+{^v$#  
$password=$_POST['password']; 5~\GAjf  
$exec="select * from admin where username='".$username."'"; %W,V~kb  
if($result=mysql_query($exec)) A`ScAzx5{  
{ uG{/yJeU  
if($rs=mysql_fetch_object($result)) HrH! 'bd  
{ DxJY{e9  
if($rs->password==$password) 0p[-M`D  
{ 'q, L*  
$_SESSION['adminname']=$username; !B:wzb_  
header("location:index.php"); +MvO+\/  
} ^_!2-QY.~  
else H-5h-p k  
{ xF])NZy|  
echo "<script>alert('Password Check Error!');location.href='login.php';</script>"; }e0>Uk`[  
} 6 6Bx,]"6  
} 8;Eg>_cL:  
else b2G1@f.U  
{ f}uW(:f  
echo "<script>alert('Username Check Error!');location.href='login.php';</script>"; ]Yx&  
} BfdS3VrZ/  
} Rs;Y|W4'  
else -Ta| qQa  
{ 4M*!'sG\  
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>"; ql(~3/kA_  
} )bR`uV9<  
Yrmd hSY  
?> PIZK*Lop  
KAR **Mp+  
conn.php是这样: <jIuVX  
<? {^_K  
$conn=mysql_connect ("127.0.0.1", "", ""); NkY7Hg0  
mysql_select_db("shop"); B> V)6\   
?> w*krPaT3  
4d;.p1ro  
由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登陆语句的文件:checkadmin.asp $ nHf0.V1  
<?  [kL`'yi  
session_start(); ;I!Vba  
if($_SESSION['adminname']==') ~Zo;LSI  
{ ~U<=SyZYo  
echo "<script>alert('Please Login First');location.href='login.php';</script>"; JE ''Th}  
} E4qQ  
?> Twq,6X-  
 RR[1mM  
呵呵,今天说到这里,明天说一下怎么弄一个分页。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 5 发表于: 2006-09-03
学习目的:学会添加删除修改数据 pv@w 8*  
NXSjN~aG2  
mysql_query($exec); (=t41-l  
单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句 MD>xRs   
'l6SL- <  
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")"; z\c$$+t  
VJOB+CKE  
删除:$exec="delete from tablename where..."; gaU1A"S}  
}-T :   
修改:$exec="update tablename set item1='".$_POST['item1']."' where ..."; CC|=$(PgT  
(\M+E tU<9  
说到这里就要说一下表单和php变量传递,如果表单中的一个 <input name="item1" type="text" id="item1"> HL~DIC%  
表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1'] eoxEnCU  
Uj twOv|pF  
是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者'来包围字符型字段。 dr^MW?{a\  
我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。 y!/:1BHlm  
yyc4'j+  
今天就说到这里,大家可以DOWN一个SQL语句的参考手册,再研究研究。明天继续说SESSION。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 4 发表于: 2006-09-03
学习目的:学会读取数据 m e2$ R>@  
[BuAJ930#5  
先看两个函数: Yk=2ld;;  
1、mysql_query Q(/F7 "m  
送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数 @|d+T"f  
PXo^SHJ+gt  
本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。 uL |O<  
L^e%oQ>s  
2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 k@^T<Ci  
Oz-@e%8L  
本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。 + ;_0:+//  
}E#1Z\)  
看一个简单的例子: OEhDRU%k  
<? b{a\j%  
$exec="select * from user"; > 8%O;3-m#  
$result=mysql_query($exec); _l=X?/  
while($rs=mysql_fetch_object($result)) Uu~~-5  
{ As>P(  
echo "username:".$rs->username."<br>"; 36\_Y?zx%  
} }T&~DVM  
?> z@U5  
当然,表user中有一个username的字段,这就类似asp中的 UNyk, #4  
<% To =JE}jzo  
exec="select * from user" =PYS5\k  
set rs=server.createobject("adodb.recordset") Hgbrlh  
rs.open exec,conn,1,1 <Y+>a#T  
do while not rs.eof {;+9A}e  
response.write "username:"&rs("username")&"<br>" /dwj:g0y  
rs.movenext >(C5&3^  
loop H&uh$y@  
%> f J+  
当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。 (x140_TH~  
A9o"L.o)  
小小的两条命令可以完成读取数据的工作了,今天说到这里下一次说数据的添加删除修改。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 3 发表于: 2006-09-03
学习目的:学会连接数据库 Ti&v9re%wO  
w:/QB-`%  
PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册,总用的到。 2-beq<I  
RSBk^  
我这里就简单说一下连接MYSQL数据库。 zszx~LSvIT  
="P&!lu  
1、mysql_connect Lrq e:\  
RKb (  
打开 MySQL 服务器连接。 8SoTABHV  
语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 q+W* ?a)  
Qq3UC%Z1  
本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号,代表使用哪个端口与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。 5U6b\jxX  
Zqj EVVB  
2、 mysql_select_db /7igPNhx  
:I8HRkp  
选择一个数据库。 G3j'A{  
语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数 VvTi>2(.  
='Yg^:n  
本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。 w3jcit|  
XPT@ LM  
最简单的例子就是: l09DH+  
$conn=mysql_connect ("127.0.0.1", "", ""); i/RA/q  
mysql_select_db("shop"); Xp0S  
连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。 RL b o  
1"~$(@oxG  
今天就说到这里,明天再说一下数据库的读取。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 2 发表于: 2006-09-03
学习目的:学会构建数据库 o_n 3.O=  
`_!R;f  
在ASP中,如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件,如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库,但是在PHP中,MY SQL的命令行编辑可能会令初学者感到很麻烦,不要紧,你下载一个PHPMYADMIN安装一下,以后建立编辑数据库可以靠它了。 U &RZx&W  
J }|6m9k!  
下面说一下它的使用。 i=jY l  
进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。 @.} @K  
}-~LXL%!3  
然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 Rk!8eN Pf  
vfdTGM`3  
在数据库 shop 中创建一个新表 : r b*;4a  
名字 : M=Y['w x  
字段数 : ?<1~KLPMhY  
lH/7m;M  
中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。 6/.cS4  
然后就可以开始建立表了。 r*{`_G=1  
第一栏是字段的名字;第二栏选择字段类型: 9*2^2GR^;  
我们常用的是以下几个: @k)[p+)E  
1)VARCHAR,文本类型 YR u#JYti  
2)INT,整数类型 ,$Xhwr  
3)FLOAT,浮点数类型 Lm*PHG  
4)DATE,日期型 \e~5Dx1  
5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。 WkDXWv\{,{  
W^)'rH  
建立了表以后,可以在左边看到你建立的表,点击以后,你可以: 6@FGt3y  
1)按右边的结构:查看修改表结构 I-m Bj8^;  
2)按右边的浏览:查看表中的数据 _2w8S\  
3)按右边的SQL:运行SQL语句 '3fN2[(  
4)按右边的插入:插入一行记录 ;lf$)3%[  
5)按右边的清空:删除表中所有记录 q_Z6s5O  
6)按右边的删除:删除表 Z6 E_Y?  
qm< mw"]  
还有一个很重要的功能就是导入和导出,当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,如果是ASP的ACCESS简单了,直接上传MDB文件即可,如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的PHPMYADMIN上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句即可。 _ O;R  
\ `R8s_S  
今天就说到这里,明天继续说数据库操作。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2006-09-03
学习目的:掌握php的流程控制 3L9@ELY4  
5 Q/yPQN  
1、if..else 循环有三种结构 %Ot*k%F  
UmG|_7  
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: BbhC 0q"J  
.yB{+  
if (expr) { statement } RcOfesW o  
#U.6HBuQa  
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 S=G2%u!;  
1v 4M*  
范例:本例省略大括号。 f /t`B^}@  
)j. .)o  
<?php \|CuTb;0  
if ($state==1)echo "哈哈" ; h)Ol1[y`  
?> zBc |gx  
U04&z 91"  
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 W0<2*7s  
 vUR gR  
范例:本例的执行部分有三行,不可省略大括号。 Xn02p,,  
pO)5NbU  
<?php 9ePom'1f1  
if ($state==1) { 77-G*PI*I  
echo "哈哈 ; ~.CmiG.7  
echo "<br>" ; sY:=bU^P  
} ~l]g4iEp  
?> b8!   
+v< \l=  
Z=oGyA  
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 vbfQy2q  
Z1{>"o:@  
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 o{3>n" \w3  
<?php 0wt4C% .0  
if ($state==1) { a|z@5r%  
echo "哈哈" ; mDO! o  
echo "<br>"; 73JrK_h  
} 51;[R8'w  
else{ mJYD"WgY  
echo "呵呵"; SGu`vN]  
echo "<br>"; <==6fc>s  
} Y|buQQ|  
?> odn3*{c{x  
I3u)y|Y=  
ZS[Ut  
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 4hzdc ] a  
@@cc /S  
直接看下面的例子 }b]eiPWN  
T3@34}*  
<?php G&08Qb ,N  
if ( $a > $b ) { ZEso2|   
echo "a 比 b 大" ; Hwcmt!y  
} elseif ( $a == $b ) { J,\e@  
echo "a 等于 b" ; M0$E_*  
} else { FH%M5RD  
echo "a 比 b 小" ; z\$(@:{A  
} H4$f+  
?> #Hy\l J  
!+]KxB   
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 eJeL{`NS  
MG~bDM4  
2、 for 循环就单纯只有一种,没有变化,它的语法如下 rQosI:$  
<v=s:^;C0  
for (expr1; expr2; expr3) { statement } p(nEcu  
"C?H:8W  
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 .A0fI";Q  
)S;3WnQ)  
下例是用 for 循环写的的例子。 txE+A/>i9  
/f drf  
<?php zO@>)@~  
for ( $i = 1 ; $i <= 10 ; $i ++) { RT${7=  
echo "这是第".$i."次循环<br>" ; ~/XDA:nfL:  
} >dgz/n?:v  
?> v]Aop<KLX  
PkLNIp1  
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 J 5xMA-  
 tq?a3  
语法如下 ]LEaoOecu  
z#1"0Ks&P  
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } 20}w . V  
{h PB%  
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 UZ#oaD8H6  
Vf<q-3q  
<?php ~+ 9v z  
switch ( date ( "D" )) { * eX/Z Cn  
case "Mon" : _EJPI  
echo "今天星期一" ; D c;k)z=  
break; +bT[lJ2O>G  
case "Tue" : X?XB!D7[  
echo "今天星期二" ; K)5j  
break; aNA ]hl  
case "Wed" : ,HI% ym  
echo "今天星期三" ; Io[NN aF|  
break; _3< P(w{  
case "Thu" : qDU4W7|T`  
echo "今天星期四" ; >|yP`m   
break; p_X{'=SQ1  
case "Fri" : m)3M)8t  
echo "今天星期五" ; K/j u=>  
break; OzwJ 52  
default: \j5`6}zm  
echo "今天放假" ; BC\W`K  
break; "eqzn KT%u  
} Gp+\}<^ Z  
?> ]^T-X/v9  
`oH4"9&]k3  
这里需要注意的是break;别遗漏了,default,省略是可以的。 SN]g4}K-  
Ln t 1  
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 <XQwu*_\  
(m6V)y  
今天就说到这里,明天开始说数据库的使用。
描述
快速回复

您目前还是游客,请 登录注册
欢迎提供真实交流,考虑发帖者的感受
认证码:
验证问题:
10+5=?,请输入中文答案:十五