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

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

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
第一天 j,:vK  
以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 ]Ak/:pu  
Zt3Y<3o  
至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 }iOFB&)w  
3rRN~$  
下面简单介绍一下PHP的语法。 +;@p'af!9  
f9ziSD#  
1、嵌入方法: P LHiQ:  
KG8:F].u(  
类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 h_xHQf&#  
xna4W|-  
2、引用文件: 6qAs$[  
"2J$~2{N  
引用文件的方法有两种:require 及 include。 -Y?C1DbKz  
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 -chk\75  
3G r:.V9=  
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 }VetaO2*  
zG"*B_l}+  
3、注释方法: 1-!q,q  
p bRU"   
<?php |ORro r}  
echo "这是第一种例子。 " ; // 本例是 C++ 语法的注释 cV|u]ce%1  
/* 本例采用多行的 CVk.Ez6  
注释方式 */ q!r4"#Y"@Z  
echo "这是第二种例子。 " ; "}91wfG9  
@)i A V1r"  
echo "这是第三种例子。 " ; # 本例使用 UNIX Shell 语法注释 U&PwEh4uG  
?> ggQBQ/ L  
ke~S[bL%-  
4、变量类型: # Vq"Cf  
D(z}c,  
$mystring = "我是字符串" ; 7ThGF  
$NewLine = "换行了 " ; &@&0n)VTd  
$int1 = 38 ; T^b62j'b5_  
$float1 = 1.732 ; PF6w'T 5  
$float2 = 1.4E+2 ; ZvSWIQ6  
$MyArray1 = array( "子" , "丑" , "寅" , "卯" ); Vm_<eyI2  
` D9sEt_/  
这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 B'@a36  
{Xj2c]A1  
5、运算符号: EKr#i}(x<  
FF}A_ZFY  
数学运算: 符号 意义 j 1Ng[  
+ 加法运算 \H6[6*JuB  
- 减法运算 CLn}BxgD  
* 乘法运算 K0YUN^St  
/ 除法运算 px7<;(I  
% 取余数 4fuK pLA  
++ 累加 <"}Gvi  
-- 递减 Iz^lED  
&a/F"?9jL  
字符串运算: qhIO7h  
2A,iY}R  
运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& 4Iq-4IG(  
<? ytsPk2@WR  
7K.in3M(  
$a = "PHP 4" ; !+F6Bf  
$b = "功能强大" ; Bkq3-rX\  
echo $a.$b; 0P%,1M3d  
?> |o5F%1o  
这里也引出两个问题,首先PHP中输出语句是echo,第二类似ASP中的<%=变量%>,PHP中也可以<?=变量? >。 ~ "IjT'W3  
3lW7auH4Y{  
逻辑运算: udjahI<{  
})Pq!u:3  
符号 意义 -\2T(3P  
< 小于 p,cw- lN  
> 大于 4ne95_i  
<= 小于或等于 hU]Gv)B  
>= 大于或等于 Z2.S:y.  
== 等于 @y+Hb@ >.  
!= 不等于 qh]ILE87(  
&& 而且 (And) i^O(JC  
and 而且 (And) v})-:  
|| 或者 (Or) /-mo8]J#2~  
or 或者 (Or) @C=Dk  
xor 异或 (Xor) `g~T #U\>d  
! 不 (Not) !.^%*6f  
~"t33U6  
今天就说到这里,明天说一下流程控制。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 9 发表于: 2006-09-03
学习目的:学会用PHP上传文件和发邮件 B(z?IW&  
r^j iK\*  
上传文件表单必须加上 enctype="multipart/form-data" A=+ |&+? t  
和 <input type="file" name="file"> ,[j'OyR  
下面看一下代码: ;`(l)X+7  
'T_Vm%\)  
$f=&$HTTP_POST_FILES['file']; K9@F1ccQ/  
$dest_dir='uploads';//设定上传目录 ]-7$wVQ<  
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复 <"SOH; w  
$r=move_uploaded_file($f['tmp_name'],$dest); /2&:sHWW  
chmod($dest, 0755);//设定上传的文件的属性 E#T6rd P  
Cxt_QyL?  
上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键 "y5LojdCs  
[!Jd.zm  
至于发邮件就更加简单,可以使用mail()函数 .]IidsgM  
SZ*Nr=X  
mail("收件人地址","主题","正文","From:发件人 Reply-to:发件人的地址"); TSPFi0PP  
lZI?k=rWv  
不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。 VEtdp*ot  
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。 MD 62ObK!  
= ;!$Qw4  
十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 8 发表于: 2006-09-03
学习目的:注意事项 lls-Nir%  
i`F8kg`_K  
因为我是先学ASP的,所以再做PHP的时候会发现很多地方需要适应。 ._$tNGI4  
W ^MF3  
1、注意不要漏了分号 vp#AD9h1  
2、注意不要漏了变量前的$ Fhr5)Z  
3、使用SESSION的时候注意不要遗漏session_start(); SCUsDr+.  
:hA=(iz  
如果发生错误的时候,可以采用以下方法: |hlc#t ?  
1、如果是SQL语句出错,就注释了然后输出SQL语句,注意也要注释调后续的执行SQL语句 <691pk X  
2、如果是变量为空,大多是没有传递到位,输出变量检查一下,检查一下表单的id和name 6n  
3、如果是数据库连接出错,检查是否正确打开MY SQL和是否遗漏了连接语句 R54wNm @  
4、注意缩进,排除括号不区配的错误  Q9!T@  
]l~TI8gC  
在做大网站的时候,我的思路是先构建数据库,确定每一个字段的作用,和表之间的关系。然后设计后台界面,从添加数据开始做起,因为添加是否成功可以直接到数据库里面验证,做好了添加再做显示的页面,最后才是两者的结合。一般来说后台就包括添加删除修改和显示,后台没有问题了,前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。 S{sJX5R;  
-#e3aXe  
好了,今天说到这里,明天说一下如果用PHP上传文件和发邮件。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 7 发表于: 2006-09-03
学习目的:做一个分页显示 pm.Zc'23  
v_7?Zik8E  
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num [J`%i U  
O8\dMb  
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。 &YU; K&  
u3Qm"?$`  
$execc="select count(*) from tablename "; - %5O:n  
$resultc=mysql_query($execc); 9 K.B  
$rsc=mysql_fetch_array($resultc); !T<4em8  
$num=$rsc[0]; U<aT%^_  
a*oqhOTQ  
这样可以得到记录总数 B]""%&! O  
ceil($num/10))如果一页10记录的话,这个就是总的页数 3b#eB  
i 1{Lx)  
所以可以这么写 vfn _Nq;  
if(empty($_GET['page'])) _3_kvs  
{ p;P"mp\'  
$page=0; AD** 4E  
} k /hD2tBLu  
else Xv~v=.HNhk  
{ L7}dvdtZ0  
$page=$_GET['page']; f <,E  
if($page<0)$page=0; &m8#^]*  
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 Tgf#I*(^]  
}  dkr[B' n  
FM80F_G^z  
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; 2EU((Q`>=(  
//一页是10记录的 6w )mo)<X  
[i&EUvo  
最后我们需要做的就是几个连接: lHTW e'  
<a href="xxx.php?page=0">FirstPage</a> Pa8E.<>  
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 8`0/?MZ)   
<a href="xxx.php?page=<?=($page+1)?>">NextPage</a> m#^ua^JV  
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> vzr?#FG  
5vfzSJ  
这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 6 发表于: 2006-09-03
学习目的:学会SESSION的使用 '#;%=+=;  
]WO0v`xh  
SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION; ,bLHkBK  
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。 aR2Vvo  
T&ECGF;Y/  
下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。 nz?jNdyz  
登陆表单是这样:login.php 8n[6BF);  
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">  wh A  
<tr> EGY'a*]cU  
<form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> G~ldU: ?  
<tr class="tdbg"> FK^JCs^  
<td colspan="2"><div align="center">Administrators Login</div></td> <fZ?F=  
</tr> Ci}v+  
<tr class="tdbg"> &$,%6X"  
<td><div align="center">Username</div></td> 74h[YyVi  
<td><div align="center"> P_[A  
<input name="username" type="text" id="username"> -Tzp;o  
</div></td> {#Lj,o  
</tr> S m%\,/3  
<tr class="tdbg"> +p:?blG  
<td><div align="center">Password</div></td> (D?%(f  
<td><div align="center"> #TXN\YNP  
<input name="password" type="password" id="password"> BeNH"Y:E  
</div></td> Gl4(-e'b  
</tr> 4GiHp7Y&A  
<tr class="tdbg"> sp2"c"_+  
<td colspan="2"><div align="center"> :FUefW m  
<input type="submit" name="Submit" value="Submit"> {DI`HB[  
<input type="reset" name="Submit2" value="Clear"> BJ c'4>  
</div></td> {Xc^-A[~  
</tr> ^h c&rD)_  
</table></td></form> JB_<Haj  
</tr> w`N|e0G@  
</table> BotGPk><c  
~=!d>f~U  
处理文件是这样 'R{Xq HP  
<? sW53g$`v  
require_once('conn.php'); H(JgqbFB*  
session_start(); +5zLQ>]z  
$username=$_POST['username']; d-W@/J  
$password=$_POST['password']; T;4& ^5 n  
$exec="select * from admin where username='".$username."'"; t7t?xk!2  
if($result=mysql_query($exec)) ~)Z MGx  
{ 8Moe8X#3  
if($rs=mysql_fetch_object($result)) aZk/\&=6  
{ &pL.hM^  
if($rs->password==$password) :75$e%'A  
{ cJ}J4?  
$_SESSION['adminname']=$username; -=tf)  
header("location:index.php"); o!\Q,  
} ')bas#=uP  
else 'V*ixK8R0  
{ ="k9 y  
echo "<script>alert('Password Check Error!');location.href='login.php';</script>"; =J2cX`  
} TjU g8k  
} M_:_(y>l  
else @y|ZXPC#  
{ S,=#b 4\#%  
echo "<script>alert('Username Check Error!');location.href='login.php';</script>"; AM[#AZv  
} MR) *Xh  
} ?$ft3p}  
else vM.Y/,7S  
{ _7)>/YK?}4  
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>"; n]15 ~GO.  
} e%Sw(=a  
4(h19-V  
?> ?yfw3s  
\),DW)  
conn.php是这样: ~x!"(  
<? '=M4 (h  
$conn=mysql_connect ("127.0.0.1", "", ""); p)dD{+"/2  
mysql_select_db("shop"); +b9gP\Hke  
?> /M0A9ZT[  
\!+#9sq0  
由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登陆语句的文件:checkadmin.asp w$D&LA}(M  
<? h^H~q<R[T  
session_start(); v$P<:M M  
if($_SESSION['adminname']==') RS8tE(  
{ a/ k0(  
echo "<script>alert('Please Login First');location.href='login.php';</script>"; csEF^T-  
} &D/@H1fBe  
?>  3ih3O  
]12ypcf  
呵呵,今天说到这里,明天说一下怎么弄一个分页。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 5 发表于: 2006-09-03
学习目的:学会添加删除修改数据 SZ;Is,VgU4  
&| d6  
mysql_query($exec); ' )0eB:  
单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句 2!}:h5   
/"f4aF[  
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")"; qwERy{]Sp;  
S4salpz  
删除:$exec="delete from tablename where..."; 'l&),]|$)  
&e-MOM2&  
修改:$exec="update tablename set item1='".$_POST['item1']."' where ..."; #Yqj27&  
 .# Jusd  
说到这里就要说一下表单和php变量传递,如果表单中的一个 <input name="item1" type="text" id="item1"> 6]Vf`i  
表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1'] &f;<[_QI=  
RTL A*  
是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者'来包围字符型字段。 >" z$p@7  
我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。 :vsF4  
+s`HTf  
今天就说到这里,大家可以DOWN一个SQL语句的参考手册,再研究研究。明天继续说SESSION。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 4 发表于: 2006-09-03
学习目的:学会读取数据 RqONVytx  
2i4&*& A  
先看两个函数: ?}n\&|+  
1、mysql_query 19g-#H!  
送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数 A~!v+W%vO1  
k;fy8  
本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。 Os5Xejh`I  
|})7\o  
2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 >l$qE  
cD6T4  
本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。 S, *  
<Rno ;  
看一个简单的例子: GY~Q) Z  
<? Wf}x"*  
$exec="select * from user"; FEF $4)ROv  
$result=mysql_query($exec); T1([P!g*  
while($rs=mysql_fetch_object($result)) /Cl=;^)  
{ Gy3t   
echo "username:".$rs->username."<br>"; -Y{=bZS u  
} pSPVY2qKX  
?> 4)DI0b"  
当然,表user中有一个username的字段,这就类似asp中的 gQ0W>\xz  
<% O 8\wH  
exec="select * from user" )[Bl3+'  
set rs=server.createobject("adodb.recordset") m j!P ]  
rs.open exec,conn,1,1 9iwSE(},  
do while not rs.eof z5UY0>+VdS  
response.write "username:"&rs("username")&"<br>" g?mfpwZj  
rs.movenext s (hJ *  
loop '1Z3MjX  
%> S{l >|N2q  
当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。 ` &E-  
8Q*477=I  
小小的两条命令可以完成读取数据的工作了,今天说到这里下一次说数据的添加删除修改。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 3 发表于: 2006-09-03
学习目的:学会连接数据库 $7'K]'UJXO  
^=1:!'*3D  
PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册,总用的到。 =_@Q+N*]|(  
ITmW/Im5  
我这里就简单说一下连接MYSQL数据库。 W3HTQGV  
pAY[XN  
1、mysql_connect %z_L}L  
 yf/c  
打开 MySQL 服务器连接。 vr$zYdV>  
语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 M#5*gWfq9  
!ot$Q  
本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号,代表使用哪个端口与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。 ?%]?#4bkc  
Cbq|<p# #o  
2、 mysql_select_db Z4ZR]eD  
-:P`Rln  
选择一个数据库。 E979qKl  
语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数 (U GmbRf&  
c1 ~=   
本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。 <:YD.zAh|  
&UV=<Az {  
最简单的例子就是: .>;}GsN&  
$conn=mysql_connect ("127.0.0.1", "", ""); fN-y8  
mysql_select_db("shop"); B'U;i5u4'  
连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。 AgU 7U/yk  
B|zVq=l~  
今天就说到这里,明天再说一下数据库的读取。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 2 发表于: 2006-09-03
学习目的:学会构建数据库 )h&*b9[B=  
D,<#pNO_  
在ASP中,如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件,如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库,但是在PHP中,MY SQL的命令行编辑可能会令初学者感到很麻烦,不要紧,你下载一个PHPMYADMIN安装一下,以后建立编辑数据库可以靠它了。 .%3qzOrN  
OZc.Rtgc  
下面说一下它的使用。 [h=[@jiB  
进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。 Q*c |!< &e  
 M .J  
然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 E~| XY9U36  
#ozQF~  
在数据库 shop 中创建一个新表 : L(ni6-  
名字 : Q =!f,  
字段数 : 2TZ+R7B?  
I,Z'ed..  
中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。 `JrvD  
然后就可以开始建立表了。 f[;l7  
第一栏是字段的名字;第二栏选择字段类型: M)T{6 w  
我们常用的是以下几个: +'{@Xe}  
1)VARCHAR,文本类型 EvJ"%:bp  
2)INT,整数类型 Z7@~#)3  
3)FLOAT,浮点数类型 zr1,A#BV  
4)DATE,日期型 uV'w0`$y  
5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。 <Ky6|&!  
J@4,@+X  
建立了表以后,可以在左边看到你建立的表,点击以后,你可以: HbUadPr  
1)按右边的结构:查看修改表结构 $S(q;Y  
2)按右边的浏览:查看表中的数据 ]L?DV3N  
3)按右边的SQL:运行SQL语句 (!iGQj(m  
4)按右边的插入:插入一行记录 rQ!X  
5)按右边的清空:删除表中所有记录 p#T^o]+  
6)按右边的删除:删除表 "v9i;Ba>+  
YJ[Jo3M@j0  
还有一个很重要的功能就是导入和导出,当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,如果是ASP的ACCESS简单了,直接上传MDB文件即可,如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的PHPMYADMIN上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句即可。 c~=yD:$  
0s%rd>3  
今天就说到这里,明天继续说数据库操作。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2006-09-03
学习目的:掌握php的流程控制 ?t{ 2y1  
dreEes`|  
1、if..else 循环有三种结构 6?X)'  
ue~?xmZg  
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: Jjgy;*hM  
x(UOt;  
if (expr) { statement } J91O$szA  
M^$liS.D  
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 z#|#Cq`VG  
ncy?w e  
范例:本例省略大括号。 @N'0:0Nb_  
Ub%sw&QG(9  
<?php >a aHN1Ca  
if ($state==1)echo "哈哈" ; _H (:$=$Q  
?> @jp}WwC/  
eK]$8l|LI  
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 IUJRP  
fsxZQ=-PW  
范例:本例的执行部分有三行,不可省略大括号。 bR*/d-v^  
jRv j:H9  
<?php xqA XfJ.  
if ($state==1) { ~1`ZPLVG  
echo "哈哈 ; e#uk+]  
echo "<br>" ; z12c9k%s  
} i7RW8*  
?> !UV/p"CfX  
)&$Zt(  
" ~X;u8m  
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 vMQvq9T}  
>10pk  
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 .vbUv3NI  
<?php p 7YfOUo k  
if ($state==1) { 5 1\N+  
echo "哈哈" ; ]("5O V5  
echo "<br>"; wv~?<DF  
} "V:24\vO  
else{ <f'2dT@6  
echo "呵呵"; xg>AW Q  
echo "<br>"; jP-=x(  
} ji|`S\u#b  
?> H:DTvv8e{  
mh4`,N  
tl:+wp7P`  
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 ~D9VjXfL)  
)= ,Lfj8x  
直接看下面的例子 \AT]$`8@_  
fy(i<L Z  
<?php nOd'$q  
if ( $a > $b ) { DsY$  
echo "a 比 b 大" ; #n[1%8l,  
} elseif ( $a == $b ) { Yp_R+a^  
echo "a 等于 b" ; 9b0M'x'W5  
} else { M_4:~&N$  
echo "a 比 b 小" ; $2M dxw5  
} WG_20JdJY  
?> N!`8-ap\^  
\3ZQ:E}5  
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 N9M''H *VS  
#0+`dI_5/  
2、 for 循环就单纯只有一种,没有变化,它的语法如下 PUdJ>U  
NB z3j  
for (expr1; expr2; expr3) { statement } P0En&g+~  
x*9CK8o=  
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 dX58nJ4u  
?QnVWu2K  
下例是用 for 循环写的的例子。 ,a$ ?KX  
kUdl2["MZ  
<?php A!K/92[#@  
for ( $i = 1 ; $i <= 10 ; $i ++) { Eoj 2l&\  
echo "这是第".$i."次循环<br>" ; 'Gw;@[  
} E/MNz}+  
?> ;,8bb(j  
l[2 d{r  
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 v%e-vl  
P`^{dH $P  
语法如下 4RH'GnLa  
eDm~B (G$  
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } Z(8'ki  
 ^vPt Ppt  
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 _PPW9US{  
>tq,F"2amC  
<?php @R|Gz/  
switch ( date ( "D" )) { CTbz?Kn  
case "Mon" : %("Bq"Q8  
echo "今天星期一" ; NjCdkT&g  
break; 9Q#eu~R  
case "Tue" : 6!,Am^uXM  
echo "今天星期二" ; JYbE(&l%de  
break; 0RLyAC|  
case "Wed" : Rv)!p~V8  
echo "今天星期三" ; 3q>6gaTv  
break; 5K;vdwSB  
case "Thu" : L29,Y=n@  
echo "今天星期四" ; Vs1j9P|G  
break; [\ M=w7  
case "Fri" : y1JxAj  
echo "今天星期五" ; $>3/6(bW  
break; idC4yH42  
default: 0`KB|=>  
echo "今天放假" ; M1MpR+7S  
break; ]to"X7/  
} ::y+|V/  
?> ]y'/7U+  
(O N \-*  
这里需要注意的是break;别遗漏了,default,省略是可以的。 ,_ XDCu @  
UXXN\D  
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 gzK"'4`  
*nB fF{y  
今天就说到这里,明天开始说数据库的使用。
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码:
验证问题:
3+5=?,请输入中文答案:八 正确答案:八