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

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

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
第一天 ": mCZUt  
以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 ]}jgB 2x7  
@\#'oIc|  
至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 c& 9+/JYMo  
[3Wsc`Q  
下面简单介绍一下PHP的语法。 $0S.@wUG  
ZJ;wRd@  
1、嵌入方法: -HO6K) ur  
@hE7r-}]  
类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 kxcgOjrmI  
E!:.G+SEl  
2、引用文件: x& mz-  
 "Nk`RsW  
引用文件的方法有两种:require 及 include。 x0}<n99qE  
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 |:!E HFr  
Fcu Eeca  
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 %:yHMEG]'  
}Z~pfm_S  
3、注释方法: 8Sd?b5|G~  
z:0-aDe M  
<?php K * xM[vO  
echo "这是第一种例子。 " ; // 本例是 C++ 语法的注释 B^E2UNRA  
/* 本例采用多行的 gt].rwo"  
注释方式 */ }dV9%0s!  
echo "这是第二种例子。 " ; uJ2C+$=Ul  
\9&YV;Ct  
echo "这是第三种例子。 " ; # 本例使用 UNIX Shell 语法注释 WM~J,`]J  
?> }TXp<E"\  
&!3VqHQ`  
4、变量类型: `kaR@t  
V\e13cL]  
$mystring = "我是字符串" ; +z~ !#j4Q  
$NewLine = "换行了 " ; H24ate?t,  
$int1 = 38 ; m-~V+JU;x  
$float1 = 1.732 ; 75QXkJu  
$float2 = 1.4E+2 ; F[Guy7?O  
$MyArray1 = array( "子" , "丑" , "寅" , "卯" ); eSQzjR*  
A8A:@-e8A  
这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 KT]J,b  
H| eD/6K  
5、运算符号: .3S\Rrv  
,_wm,  
数学运算: 符号 意义 -(%ar%~Zd  
+ 加法运算 p@!@^1j=  
- 减法运算 X#f+m) S  
* 乘法运算 LOyCx/n  
/ 除法运算 r1^m#!=B  
% 取余数 5bGjO&$l  
++ 累加 LZZ:P  
-- 递减 y~4SKv $  
l,^i5t'  
字符串运算: 8Izn'>"  
V PLCic,T  
运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& VR5e CJ:i  
<? }uV?  
EL2hD$  
$a = "PHP 4" ; $Hl+iF4j<  
$b = "功能强大" ; l&e5_]+%  
echo $a.$b; zx_O"0{5  
?> -Ib+#pX  
这里也引出两个问题,首先PHP中输出语句是echo,第二类似ASP中的<%=变量%>,PHP中也可以<?=变量? >。 auyKLT3C  
E'Fv *UA  
逻辑运算: N4Fy8qU;  
ci{9ODN  
符号 意义 =0!\F~  
< 小于 X+'^ Sp  
> 大于 jx5[bUp4u  
<= 小于或等于 lN][xnP  
>= 大于或等于 +*r**(-Dm  
== 等于 ^J*G%*  
!= 不等于 o\=i0HR9  
&& 而且 (And) ib""Fv7{  
and 而且 (And) D~i@. k  
|| 或者 (Or) eD` ,  
or 或者 (Or) 8-y: ==C  
xor 异或 (Xor) K@$L~G  
! 不 (Not) qD=m{O8%_  
:DJ7d  
今天就说到这里,明天说一下流程控制。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 9 发表于: 2006-09-03
学习目的:学会用PHP上传文件和发邮件 P!4{#'_}  
Aa\=7  
上传文件表单必须加上 enctype="multipart/form-data" $ <>EwW  
和 <input type="file" name="file"> Fv7%TK{oe  
下面看一下代码: 44fq1<.K  
gw&#X~em  
$f=&$HTTP_POST_FILES['file']; hB GGs  
$dest_dir='uploads';//设定上传目录 h^ecn-PC  
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复 l_j<aCY?|  
$r=move_uploaded_file($f['tmp_name'],$dest); @7[.> I(  
chmod($dest, 0755);//设定上传的文件的属性 VM V]TPks>  
mB|mt+  
上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键 M_e$l`"G  
*|gs-<[#X  
至于发邮件就更加简单,可以使用mail()函数 u6S0t?Udap  
4htSwK+  
mail("收件人地址","主题","正文","From:发件人 Reply-to:发件人的地址"); ==jw3_W  
&8_#hne_  
不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。 R{OE{8;  
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。 :hhE=A>X  
jcv1z v.  
十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 8 发表于: 2006-09-03
学习目的:注意事项 gHh.|PysW  
: ! iPn%  
因为我是先学ASP的,所以再做PHP的时候会发现很多地方需要适应。 >&TnTv?I  
4xpWO6Q  
1、注意不要漏了分号 z)Q^j>%  
2、注意不要漏了变量前的$ FskJyB[  
3、使用SESSION的时候注意不要遗漏session_start(); >eG&gc@$1$  
QY\wQjwuW  
如果发生错误的时候,可以采用以下方法: D>7_P7]y  
1、如果是SQL语句出错,就注释了然后输出SQL语句,注意也要注释调后续的执行SQL语句 l;Wy,?p  
2、如果是变量为空,大多是没有传递到位,输出变量检查一下,检查一下表单的id和name ,<P[CUD&&  
3、如果是数据库连接出错,检查是否正确打开MY SQL和是否遗漏了连接语句 *A1TDc$  
4、注意缩进,排除括号不区配的错误 }jY[| >z  
cVHE}0Xd(  
在做大网站的时候,我的思路是先构建数据库,确定每一个字段的作用,和表之间的关系。然后设计后台界面,从添加数据开始做起,因为添加是否成功可以直接到数据库里面验证,做好了添加再做显示的页面,最后才是两者的结合。一般来说后台就包括添加删除修改和显示,后台没有问题了,前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。 %}ApO{  
EAd:`X,Y  
好了,今天说到这里,明天说一下如果用PHP上传文件和发邮件。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 7 发表于: 2006-09-03
学习目的:做一个分页显示 k]/6/s\  
})0 7u  
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num PSQ:'  
`)C`_g3Ew  
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。 CpqSn/  
$-9@/%Y  
$execc="select count(*) from tablename "; S. F=$z.%  
$resultc=mysql_query($execc); `Ig2f$}  
$rsc=mysql_fetch_array($resultc); 5f*'wA  
$num=$rsc[0]; vsz^B :j  
b;{"lJ:+Z  
这样可以得到记录总数 ?6YUb;  
ceil($num/10))如果一页10记录的话,这个就是总的页数 'iISbOM  
6j"I5,-~!  
所以可以这么写 hC, -9c  
if(empty($_GET['page'])) WKIiJ{@L  
{ .SV3<)  
$page=0; X@AkA9'fq  
} s^?sJUj  
else qD%&\ZT  
{ -b>O4_N  
$page=$_GET['page']; n `T[eb~  
if($page<0)$page=0; NDa|.,  
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 0G\myv  
} KJ^GUqVl  
'kg]|"M  
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; S}[:;p?F`  
//一页是10记录的 (DMnwqr  
hUhp2ibEs  
最后我们需要做的就是几个连接: j% USu+&  
<a href="xxx.php?page=0">FirstPage</a> 8(/f!~  
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> P~ pbx  
<a href="xxx.php?page=<?=($page+1)?>">NextPage</a> 07"Oj9NlA  
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> W]}V<S$  
;ld~21#m  
这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 6 发表于: 2006-09-03
学习目的:学会SESSION的使用 @bCiaBdi  
|21hY  
SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION; RowiSW  
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。 Ru')X{]25  
)zt4'b\)v  
下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。 RrpF i'R  
登陆表单是这样:login.php "sx&8H"  
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> 9w<Bm"G  
<tr> 1HWJxV"  
<form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> j4SG A#;v  
<tr class="tdbg"> Bt7v[Ot   
<td colspan="2"><div align="center">Administrators Login</div></td> 10 H!  
</tr> k Q(y^tW  
<tr class="tdbg"> )$4DH:WN  
<td><div align="center">Username</div></td> ]a|;G  
<td><div align="center"> 7c]Ai  
<input name="username" type="text" id="username"> U@5Z9/n{  
</div></td> UYrzsUjg&  
</tr> yi;t  
<tr class="tdbg"> &FF. Ddt{  
<td><div align="center">Password</div></td> ?[B[ F  
<td><div align="center"> 2\tjeg  
<input name="password" type="password" id="password"> htrj3$q(4  
</div></td> 6SO7iFS  
</tr> 6%INNIyAWa  
<tr class="tdbg"> }Q^a.`h  
<td colspan="2"><div align="center"> *>$)#?t  
<input type="submit" name="Submit" value="Submit"> &p4<@k\L  
<input type="reset" name="Submit2" value="Clear"> AX RNV  
</div></td> }/r%~cZ  
</tr> U*:'/.  
</table></td></form> eniR}  
</tr> AR6vc  
</table> p}7&x[fTLk  
I8]NY !'cW  
处理文件是这样 PM>XT  
<? AHD%6 \$  
require_once('conn.php'); hBE>ea  
session_start(); []!r|R3  
$username=$_POST['username']; YY~=h5$  
$password=$_POST['password']; `#8R+c=$  
$exec="select * from admin where username='".$username."'"; OT3;qT*fw  
if($result=mysql_query($exec)) M #&L@fg!  
{ c!^}!32j)  
if($rs=mysql_fetch_object($result)) \o)4m[oF  
{ mM{v>Em2K#  
if($rs->password==$password) ~Fb?h%w  
{ swL|Ff`$  
$_SESSION['adminname']=$username; k\%v;3nBK  
header("location:index.php"); <uwCP4E  
} O9)}:++T  
else I'b]s~u  
{ ymX,k|lh  
echo "<script>alert('Password Check Error!');location.href='login.php';</script>"; wR$8drn]Rq  
} Ka\b_P&  
} u*N8s[s'  
else !z 5d+ M  
{ wu&7#![,  
echo "<script>alert('Username Check Error!');location.href='login.php';</script>"; *v/*_6f*  
} :]Qx T8B  
} E2kRt'~N  
else G@!9)v]9  
{ 1^^D :tt  
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>"; S Tk#hhx  
} JHH&@Cn  
T=dvc}  
?> >v,j;[(  
(r\h dLX  
conn.php是这样: MXV4bgltT  
<? 3~xOO*`o  
$conn=mysql_connect ("127.0.0.1", "", ""); =W*`HV-w  
mysql_select_db("shop"); @0'|Uygn  
?> *7ro [  
?} tQaj  
由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登陆语句的文件:checkadmin.asp {K8T5zrV  
<? p;=(-4\V}  
session_start(); (k&aD2PH  
if($_SESSION['adminname']==') 0*@S-Lj^c  
{ Lo9?,^S  
echo "<script>alert('Please Login First');location.href='login.php';</script>"; Vnb#N4vR  
} 3[Iw%% q  
?>  )6+W6:  
AI;=k  
呵呵,今天说到这里,明天说一下怎么弄一个分页。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 5 发表于: 2006-09-03
学习目的:学会添加删除修改数据 c%.& F  
 |?A-?-  
mysql_query($exec); F| Q#KwN  
单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句 ^T,cXpx|  
BG=_i#V  
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")"; c$fM6M }  
P,_E 4y  
删除:$exec="delete from tablename where..."; 1hij4m$b  
1_lL?S3,a@  
修改:$exec="update tablename set item1='".$_POST['item1']."' where ..."; w,9F riW  
3vU (4}@  
说到这里就要说一下表单和php变量传递,如果表单中的一个 <input name="item1" type="text" id="item1"> P$I\)Q H  
表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1'] =C)1NJx&~  
HCK4h DKo}  
是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者'来包围字符型字段。 bp,CvQ'}a  
我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。 EdpR| z  
1PSb72h<  
今天就说到这里,大家可以DOWN一个SQL语句的参考手册,再研究研究。明天继续说SESSION。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 4 发表于: 2006-09-03
学习目的:学会读取数据 Q,`kfxA`O  
Q>$L;1E*,  
先看两个函数: ]EQ/*ct  
1、mysql_query yk2j&}M  
送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数 `l"~"x^Rr  
{eUfwPAa3  
本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。 6< Z9p@6  
e.V){}{V  
2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 =w-H )  
EA.U>5Fq  
本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。 &=bI3-  
2-84  
看一个简单的例子: Xk'.t|  
<? :f;|^(]"  
$exec="select * from user"; DAW%?(\,  
$result=mysql_query($exec); K>y+3HN[6  
while($rs=mysql_fetch_object($result)) <H6Uo#ao  
{ %R"Fx$tQ  
echo "username:".$rs->username."<br>"; {wI0 =U  
} 6bba}P  
?> LKcrr;  
当然,表user中有一个username的字段,这就类似asp中的 @HI5; z  
<% }R$%MU5::  
exec="select * from user" plfB} p  
set rs=server.createobject("adodb.recordset") I2'?~Lt  
rs.open exec,conn,1,1 $hio (   
do while not rs.eof gp=0;#4 4  
response.write "username:"&rs("username")&"<br>" o1\8>Ew  
rs.movenext &bQ^J%\  
loop 9"S3AEI  
%> '! (`?  
当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。 k W,|>  
~\P.gSiz  
小小的两条命令可以完成读取数据的工作了,今天说到这里下一次说数据的添加删除修改。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 3 发表于: 2006-09-03
学习目的:学会连接数据库 zYgLGwi{  
J++D\x#@  
PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册,总用的到。 )Pq.kn{Sp  
K4BMa]/U  
我这里就简单说一下连接MYSQL数据库。 S[M$>  
\X!!(Z;6A  
1、mysql_connect 0W> ",2|z  
;q Z2V  
打开 MySQL 服务器连接。 K#jm6Xh?E  
语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 )1/O_N6C  
^gG,}GTl  
本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号,代表使用哪个端口与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。 3$Je,|bs  
Vs >1%$If  
2、 mysql_select_db i ^#R iCeo  
 UWI5 /R  
选择一个数据库。 M:x(_Lu  
语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数 v;S JgZK  
8J} J;Ga  
本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。 M4| L  
Sc&_6} K  
最简单的例子就是: S:gP\Atf>  
$conn=mysql_connect ("127.0.0.1", "", ""); _ 0-YsD  
mysql_select_db("shop"); 8Ex0[ e  
连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。 bTj,5,8 i  
eIJQ|p<v  
今天就说到这里,明天再说一下数据库的读取。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 2 发表于: 2006-09-03
学习目的:学会构建数据库 qp Z ".  
D+OkD-8q  
在ASP中,如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件,如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库,但是在PHP中,MY SQL的命令行编辑可能会令初学者感到很麻烦,不要紧,你下载一个PHPMYADMIN安装一下,以后建立编辑数据库可以靠它了。 gIeo7>u  
[eImP V]  
下面说一下它的使用。 \gdd  
进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。 Z,*VRuA  
; ?!sU  
然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 OX91b<A  
nP.d5%E  
在数据库 shop 中创建一个新表 : 3hkA`YSYt  
名字 : ]^!#0(  
字段数 : ?S"xR0 *  
&3rh{"^9  
中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。 ?pFHpz   
然后就可以开始建立表了。 k:f Rk<C  
第一栏是字段的名字;第二栏选择字段类型: ]BA8[2=m  
我们常用的是以下几个: '2NeuK-KD  
1)VARCHAR,文本类型 --FvE|I  
2)INT,整数类型 yDPek*#^"q  
3)FLOAT,浮点数类型 /)~M cP3  
4)DATE,日期型 bz1\EkLL  
5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。 bkb}M)C  
Z=#!FZ{  
建立了表以后,可以在左边看到你建立的表,点击以后,你可以: "QMHY\C  
1)按右边的结构:查看修改表结构 Epx.0TA=t  
2)按右边的浏览:查看表中的数据 t;'__">:q  
3)按右边的SQL:运行SQL语句 _v-sb(* J  
4)按右边的插入:插入一行记录 jsuQ R  
5)按右边的清空:删除表中所有记录 r_)*/  
6)按右边的删除:删除表 }G]]0Oi2  
# aC}\  
还有一个很重要的功能就是导入和导出,当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,如果是ASP的ACCESS简单了,直接上传MDB文件即可,如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的PHPMYADMIN上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句即可。 x[]n\\a?  
M:ttzsd  
今天就说到这里,明天继续说数据库操作。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2006-09-03
学习目的:掌握php的流程控制 JWLQ9U X  
}RXm=ArN  
1、if..else 循环有三种结构 dme_Ivt  
*h`zV<j  
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ,$*$w<  
[xHK^JP 8F  
if (expr) { statement } .^/OL}/~<  
ss*dM.b  
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 oC[$PPqX#  
+?%huJYK,  
范例:本例省略大括号。 W )\~T:Kn  
(|W@p\Q  
<?php GZse8ng  
if ($state==1)echo "哈哈" ; K1Uur>Pk%  
?> 1g *4e  
q?`bu:yS  
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 0 ~VniF^  
^*Sb)tu\ W  
范例:本例的执行部分有三行,不可省略大括号。 j#29L"  
gP`8hNwR  
<?php vuHqOAFNs  
if ($state==1) { m/<7FU8  
echo "哈哈 ; Uc.K6%iI  
echo "<br>" ; \ZXH(N*>2t  
} 7Kfh:0Ihhy  
?> Q~nc:eWD  
NI3_wV  
`U)~fu/\2M  
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 }yUZ(k#  
=^NR(:SaaU  
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 M5wj79'l"  
<?php `C,479~J  
if ($state==1) { ^dQ#\uy  
echo "哈哈" ; $P>ci4]t  
echo "<br>"; 23zB@aE_?1  
} ^MuO;<<,.  
else{ EiSS_Lc  
echo "呵呵"; "Q ^Ck7  
echo "<br>"; '(;`t1V8k  
} ]"^U  
?> q* +}wP  
G >bQlZG  
c{z QX0  
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 >a[)F  
q'[5h>Pa  
直接看下面的例子 4&}LYSZl  
2}K7(y!?u  
<?php 4;x{@Ln  
if ( $a > $b ) { UE5T%zd/  
echo "a 比 b 大" ; o@vo,JU  
} elseif ( $a == $b ) { bP(xMw<'j  
echo "a 等于 b" ; }Dm-Ibdg(  
} else { Fc{hzqaP8  
echo "a 比 b 小" ; XB zcbS+  
} .cjSgK1  
?> y^?7de}  
,@Xl?  
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 p1q"[)WVn^  
I!~5.  
2、 for 循环就单纯只有一种,没有变化,它的语法如下 k68\ _NUL  
-b8Vz}Y  
for (expr1; expr2; expr3) { statement } CM_FF:<tn  
;mu^WIj  
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 ^ 14U]<  
o/ ozX4C  
下例是用 for 循环写的的例子。 m\RU |Z  
O)n"a\LD  
<?php vdV@G`)HPr  
for ( $i = 1 ; $i <= 10 ; $i ++) { Z  G3u  
echo "这是第".$i."次循环<br>" ; xx_]e4  
} g?qm >X  
?> pO[ @2tF  
HTA Jn_  
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 e<#t]V  
9 "7(Jq  
语法如下 )[i0~o[  
LY(YgqL  
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } W{<_gD9  
r>+\9q1  
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 r3*0`Rup  
A}W) La\  
<?php !RN(/ &%y  
switch ( date ( "D" )) { v'mRch)d  
case "Mon" : /I(IT=kp  
echo "今天星期一" ; Yj;KKgk  
break; f%<kcM2  
case "Tue" : Cz` !j  
echo "今天星期二" ; p3`ND;KQ  
break; 2r4owB?  
case "Wed" : J'jwRn  
echo "今天星期三" ; BIqZg$  
break; ux:czZqy  
case "Thu" : @z[,w`  
echo "今天星期四" ; mII7p LbQ  
break; `83s97Sa  
case "Fri" : d0vn/k2I  
echo "今天星期五" ; pUi|&F K">  
break; m^I+>Bp/:  
default: F%M4i`Vh  
echo "今天放假" ; )RG@D\t,  
break; %5Q5xw]w3  
} p=sL KnLmZ  
?> GgwO>[T  
Sc#B -4m  
这里需要注意的是break;别遗漏了,default,省略是可以的。 =:A hg 9  
O eLM*Zi  
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 d^p af  
o."k7fLB  
今天就说到这里,明天开始说数据库的使用。
描述
快速回复

您目前还是游客,请 登录注册
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
认证码:
验证问题:
3+5=?,请输入中文答案:八 正确答案:八