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

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

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
第一天 _MmSi4]yd  
以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 +N3f{-{"Yo  
&"R`:`XF  
至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 ;A\SbLM  
g)L?C'BG  
下面简单介绍一下PHP的语法。 A.8[FkiNmD  
l`mNOQ@}'  
1、嵌入方法: *vqr+jr9  
9w"kxAN  
类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 ab@1JAgs  
Szb#:C  
2、引用文件: H1fKe=$1  
%fF0<c^-U  
引用文件的方法有两种:require 及 include。 LBw$K0  
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 DI )!x {"  
?l/$cO  
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 V Kw33  
5Z<y||=  
3、注释方法: dEvjB"x  
x("V +y*  
<?php Q)s`~G({P  
echo "这是第一种例子。 " ; // 本例是 C++ 语法的注释 a3wk#mH  
/* 本例采用多行的 Y9w^F_relL  
注释方式 */ <rbzsn"a  
echo "这是第二种例子。 " ; \@eaSa  
|jhu  
echo "这是第三种例子。 " ; # 本例使用 UNIX Shell 语法注释 {gkY:$xnrG  
?> Mr}K-C?ge  
vMHJgpd&j  
4、变量类型: !5VT[w 1  
7jzd I!  
$mystring = "我是字符串" ; d95 $w8>  
$NewLine = "换行了 " ; 2zlBrjk;  
$int1 = 38 ; '[zy%<2sL  
$float1 = 1.732 ; GU,ztO.w3  
$float2 = 1.4E+2 ; mE)I(< %  
$MyArray1 = array( "子" , "丑" , "寅" , "卯" ); 0)0,&@])7  
,?KN;~t#vz  
这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 b9L" ?{  
7,IH7l|G  
5、运算符号: "T~ce@  
Pe`eF(J  
数学运算: 符号 意义 n]< >$  
+ 加法运算 gc[BP>tl\  
- 减法运算 2l.qINyz  
* 乘法运算 ;X}!;S%K  
/ 除法运算 6p)dO c3L  
% 取余数 VQ(l=k:}2  
++ 累加 )d =8)9B  
-- 递减 H]<@\g*l@P  
i[N=.  
字符串运算: \ 0J &^C  
wyC1M  
运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& ":Uv u[-  
<? Xt$o$V  
7@u:F?c  
$a = "PHP 4" ; {IG5qi?/E)  
$b = "功能强大" ; d>-k-X-[  
echo $a.$b; CGCI3Z'  
?> Ra-%,cS  
这里也引出两个问题,首先PHP中输出语句是echo,第二类似ASP中的<%=变量%>,PHP中也可以<?=变量? >。 tGVC"a  
vNIQ1x5Za  
逻辑运算: zv>7;En3  
T~G~M/  
符号 意义 w\{oOlE  
< 小于 LR:meCOI  
> 大于 <UE-9g5?G  
<= 小于或等于 I?~iEO\nh  
>= 大于或等于 RS9mAeX4h  
== 等于  }0f"SWO>  
!= 不等于 syB.Z-Cpd  
&& 而且 (And) !W48sZr1&  
and 而且 (And) fb;y*-?#  
|| 或者 (Or) Jd-u ?  
or 或者 (Or) mWiX@#,  
xor 异或 (Xor) D%,AdR"m  
! 不 (Not) SMIr@*R  
3{FUFx  
今天就说到这里,明天说一下流程控制。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 9 发表于: 2006-09-03
学习目的:学会用PHP上传文件和发邮件 HTw7l]]  
o3kVcX^  
上传文件表单必须加上 enctype="multipart/form-data" Ce-D^9kC  
和 <input type="file" name="file"> "&{sE RYY  
下面看一下代码: %[J|n~8_Z  
ffgb 3  
$f=&$HTTP_POST_FILES['file']; O$, bNu/g  
$dest_dir='uploads';//设定上传目录 fXfO9{E  
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复 {wy#HYhv  
$r=move_uploaded_file($f['tmp_name'],$dest); m{{ 8#@g  
chmod($dest, 0755);//设定上传的文件的属性 0k):OVfm=  
hY[Vs5v  
上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键 R0DWjN$j  
,o68xfdZVW  
至于发邮件就更加简单,可以使用mail()函数 #a|.cm>6  
vd]75  
mail("收件人地址","主题","正文","From:发件人 Reply-to:发件人的地址"); %wk3&EC.  
SM1[)jZ-  
不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。 ~uRL+<.c  
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。 S3F8Chk5  
YfZ96C[a  
十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 8 发表于: 2006-09-03
学习目的:注意事项 Aat-938FP6  
3S h#7"K3  
因为我是先学ASP的,所以再做PHP的时候会发现很多地方需要适应。 pon0!\ZT=  
X J{b_h#N  
1、注意不要漏了分号 D5gDVulsh  
2、注意不要漏了变量前的$ dRu|*s  
3、使用SESSION的时候注意不要遗漏session_start(); *p=a-s5-  
-ttH{SslM  
如果发生错误的时候,可以采用以下方法: 2uy<wJE >  
1、如果是SQL语句出错,就注释了然后输出SQL语句,注意也要注释调后续的执行SQL语句 Y}UVC|Ef  
2、如果是变量为空,大多是没有传递到位,输出变量检查一下,检查一下表单的id和name jt,dr3|/n  
3、如果是数据库连接出错,检查是否正确打开MY SQL和是否遗漏了连接语句 %IhUQ6  
4、注意缩进,排除括号不区配的错误 c D0-g=&  
(yxHXO9N  
在做大网站的时候,我的思路是先构建数据库,确定每一个字段的作用,和表之间的关系。然后设计后台界面,从添加数据开始做起,因为添加是否成功可以直接到数据库里面验证,做好了添加再做显示的页面,最后才是两者的结合。一般来说后台就包括添加删除修改和显示,后台没有问题了,前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。 KV {J>J1  
6&KvT2?tA`  
好了,今天说到这里,明天说一下如果用PHP上传文件和发邮件。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 7 发表于: 2006-09-03
学习目的:做一个分页显示 (>usa||  
Gr}lr gPS  
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num uE%$<o*#  
7ElU5I<S  
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。 ?X5Y8n]y\h  
6<>T{2b:(p  
$execc="select count(*) from tablename "; N,F$^ q6  
$resultc=mysql_query($execc); &/-^D/ot  
$rsc=mysql_fetch_array($resultc); "B"Yfg[  
$num=$rsc[0]; gt Vnn]Jh  
yG..B  
这样可以得到记录总数 4Ow0g-{  
ceil($num/10))如果一页10记录的话,这个就是总的页数 UD}#c:I  
NPY\ >pf  
所以可以这么写 =/zb$d cz  
if(empty($_GET['page'])) 'j27.Ry.  
{ $7 FT0?kG  
$page=0; I/V lH:o  
} k/]4L!/ T  
else bWEti}kW  
{ 5zk^zn)  
$page=$_GET['page']; hiBZZ+^[  
if($page<0)$page=0; &K@ RTgb  
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 B;=-h(E}vJ  
} }{#ty uzAo  
bDq[j8IT6  
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; ecIZ +G)k  
//一页是10记录的 A$ Tp0v`t  
Z36C7 kw  
最后我们需要做的就是几个连接: |b^+= "  
<a href="xxx.php?page=0">FirstPage</a> #ssSs]zl  
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> /.m &rS  
<a href="xxx.php?page=<?=($page+1)?>">NextPage</a> "Di8MMGOY  
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> i0/RvrLc  
TcEvUZJ"  
这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 6 发表于: 2006-09-03
学习目的:学会SESSION的使用 6zR9(c:a~  
g*]/HS>e<G  
SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION; {@YY8SKb9  
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。 }fT5(+ Wo  
)oAxt70  
下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。 =R6IW,*  
登陆表单是这样:login.php 2*)2c[/0F  
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> vnr{Ekg  
<tr> fWk,k*Z 9  
<form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> 1r?hRJ:'  
<tr class="tdbg"> ~4^~w#R  
<td colspan="2"><div align="center">Administrators Login</div></td> %pG^8Q()   
</tr> |^k&6QO5  
<tr class="tdbg"> kfj)`x  
<td><div align="center">Username</div></td> egXbe)ld  
<td><div align="center"> e !2SO*O  
<input name="username" type="text" id="username"> DElrY)3O.  
</div></td> o!@}&DE|*L  
</tr> j0`)mR}  
<tr class="tdbg"> xP+`scv*m#  
<td><div align="center">Password</div></td> qEJ#ce]G  
<td><div align="center"> dYxX%"J  
<input name="password" type="password" id="password"> J1UG},-h  
</div></td> JG/Pc1aK  
</tr> 0aM&+j\q}  
<tr class="tdbg"> sFbN)Cx  
<td colspan="2"><div align="center"> M)6iYA%$  
<input type="submit" name="Submit" value="Submit"> iO@UzD #v  
<input type="reset" name="Submit2" value="Clear"> oT0TbZu%  
</div></td> 6m$lK%P{1  
</tr> #UesXv  
</table></td></form> +S6(Fvp  
</tr> }5]2tH${  
</table> cKED RX3  
J5Ovj,[EZ  
处理文件是这样 sD ,=_q@  
<? RIdh],-  
require_once('conn.php');  $+  
session_start(); 6"YcM:5~  
$username=$_POST['username']; N}gPf i  
$password=$_POST['password']; PK).)5sW  
$exec="select * from admin where username='".$username."'"; |5TzRz  
if($result=mysql_query($exec)) mJNw<T4!/  
{ 9_-6Lwj6t  
if($rs=mysql_fetch_object($result)) l9t|@9  
{ c4V%>A  
if($rs->password==$password) v8l3{qq  
{ <q.Q,_cW  
$_SESSION['adminname']=$username; w<&R|= 93  
header("location:index.php"); %EH{p@nM&-  
} 4&kC8 [r  
else ? FlQ\q  
{ 1Eh6ti  
echo "<script>alert('Password Check Error!');location.href='login.php';</script>"; {&ykpu090  
} of=N+ W  
} V| &->9"  
else m gE r+  
{ b[KZJLZ)  
echo "<script>alert('Username Check Error!');location.href='login.php';</script>"; IhjZ{oV/@  
} x/dyb.  
} .]w=+~h  
else rU9z? (  
{ %k'>bmJ  
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>"; 1I?`3N  
} {/}%[cY =  
hQ ?zc_ 3  
?> {n\Ai3F-  
#w@V!o  
conn.php是这样: g{^~g  
<? U'aJCM  
$conn=mysql_connect ("127.0.0.1", "", ""); t>! Ok  
mysql_select_db("shop"); 74r$)\q  
?> V+5av Z}  
Z`<5SHQd  
由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登陆语句的文件:checkadmin.asp FBxg^g%PB@  
<? -v! ;  
session_start(); (YM2Cv{4  
if($_SESSION['adminname']==') 7 !dj&?  
{ />n!2'!  
echo "<script>alert('Please Login First');location.href='login.php';</script>"; <?>tjCg'  
} #y-R*4G  
?> F0kdwN4;  
"`NAg  
呵呵,今天说到这里,明天说一下怎么弄一个分页。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 5 发表于: 2006-09-03
学习目的:学会添加删除修改数据 y$+=>p|d.^  
,T*\9' Q  
mysql_query($exec); D"gv:RojD  
单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句 6of9lO:  
vmg[/#  
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")"; p:V1VHT,  
(8baa.ge  
删除:$exec="delete from tablename where..."; RzU9]e  
t$ 97[ay  
修改:$exec="update tablename set item1='".$_POST['item1']."' where ..."; 5"y)<VLJX  
R^B8** N  
说到这里就要说一下表单和php变量传递,如果表单中的一个 <input name="item1" type="text" id="item1"> .W\JvPTC  
表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1'] PeIKx$$Kl{  
#jJ0Mxg  
是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者'来包围字符型字段。 _6!iv  
我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。  ~)F_FS  
Q zg?#|  
今天就说到这里,大家可以DOWN一个SQL语句的参考手册,再研究研究。明天继续说SESSION。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 4 发表于: 2006-09-03
学习目的:学会读取数据 P%ThW9^vnj  
Jd~Mq9(  
先看两个函数: KrR`A(=WL  
1、mysql_query - (7oFOtg  
送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数 =d+`xN*  
* =*\w\ te  
本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。 R;pIi/yDRe  
Xvk+1:D  
2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 Tq SjL{l%  
zJ$U5r/u  
本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。 3,EtyJ3[Bh  
IwBO#HR~)  
看一个简单的例子: .K1wp G[4  
<? 6q8PLyIp  
$exec="select * from user"; 5{WvV%  
$result=mysql_query($exec); 97 ,Yq3  
while($rs=mysql_fetch_object($result)) QeN7~ J  
{ C\Z5%2<Z  
echo "username:".$rs->username."<br>"; Rn`DUYg  
} aK_k'4YTm  
?> R#i`H(N  
当然,表user中有一个username的字段,这就类似asp中的 gW^4@q  
<% Z?d][zGw  
exec="select * from user" f$5\ b[O  
set rs=server.createobject("adodb.recordset") @^J>. g  
rs.open exec,conn,1,1 ty:{e]e  
do while not rs.eof 7{l~\] 6d  
response.write "username:"&rs("username")&"<br>" *CbV/j"P?  
rs.movenext $d,/(*Y#-  
loop 24 .'+3  
%> qu^~K.I"  
当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。 u{w,y.l1h  
%eh.@8GL`  
小小的两条命令可以完成读取数据的工作了,今天说到这里下一次说数据的添加删除修改。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 3 发表于: 2006-09-03
学习目的:学会连接数据库 j/F('r~L  
?G<?: /CU  
PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册,总用的到。 :6Tv4ZUvcG  
=d iGuI B  
我这里就简单说一下连接MYSQL数据库。 R,BINp  
Ck>]+rl  
1、mysql_connect =(Y0wZP|  
JStEOQF4  
打开 MySQL 服务器连接。 qq_ZkU@xg  
语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 P RNq8nmxC  
mxu!$wx  
本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时,参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号,代表使用哪个端口与 MySQL 连接。当然在使用数据库时,早点使用 mysql_close() 将连接关掉可以节省资源。  (^B=>  
us8HXvvp{  
2、 mysql_select_db =6f)sZpPh  
UI'fzlB  
选择一个数据库。 /1D.Ud^  
语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数 HV7f%U  
VS!v7-_N5  
本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。 Pp_? z0M  
|7Ab_  
最简单的例子就是: C rl:v8  
$conn=mysql_connect ("127.0.0.1", "", ""); [Q\(k d*4  
mysql_select_db("shop"); RTDplv; ]  
连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。 [0]J 2  
'i:lV'  
今天就说到这里,明天再说一下数据库的读取。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 2 发表于: 2006-09-03
学习目的:学会构建数据库 \qlz<   
V]"pM]>3X  
在ASP中,如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件,如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库,但是在PHP中,MY SQL的命令行编辑可能会令初学者感到很麻烦,不要紧,你下载一个PHPMYADMIN安装一下,以后建立编辑数据库可以靠它了。 PfB9 .f{  
Sfp-ns32%A  
下面说一下它的使用。 U[OUIXUi  
进入了phpmyadmin后,我们首先需要建立一个数据库,Language (*) 这里选择中文简体,然后在左边的 创建一个新的数据库 这里填写数据库名字,点击创建即可。 8<32(D{  
iel@"E 4  
然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 ,H<nNBv 3M  
e**'[3Y  
在数据库 shop 中创建一个新表 : t<$J 3h/"  
名字 : dWe%6s;   
字段数 : Iz;^D!  
83p8:C.Ze  
中填写表名字和大致你认为的字段数(不够或者多了都不要紧,以后可以再添加或者缺省),按执行。 VVpJ +  
然后就可以开始建立表了。 <b\8<mTr  
第一栏是字段的名字;第二栏选择字段类型: {x[C\vZsi]  
我们常用的是以下几个: R9D2cu,{  
1)VARCHAR,文本类型 A:(qF.Tm  
2)INT,整数类型 i70\`6*;B  
3)FLOAT,浮点数类型 L/%{,7l<^?  
4)DATE,日期型 ?YDMl  
5)大家或许会问,自动添加的ID在哪里?这个只要选择INT类型,在后面的额外中选择 auto_increment 就可以了。 }jU)s{>fb  
a<>cbP  
建立了表以后,可以在左边看到你建立的表,点击以后,你可以: 1jAuW~  
1)按右边的结构:查看修改表结构 Fg'{K%t4  
2)按右边的浏览:查看表中的数据 .3@Pz]\M#>  
3)按右边的SQL:运行SQL语句 - DYH>!  
4)按右边的插入:插入一行记录 hJw]hVYa  
5)按右边的清空:删除表中所有记录 so| U&`G  
6)按右边的删除:删除表 IG2z3(j  
Asq&Z$bB_  
还有一个很重要的功能就是导入和导出,当我们本机做好了程序和数据库的时候,需要在服务器上也有一个本地镜像,如果是ASP的ACCESS简单了,直接上传MDB文件即可,如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句,到了远端服务器的PHPMYADMIN上,创建数据库后按SQL,粘帖你刚才复制下来的所有本级生成的SQL语句即可。 v6E5#pse8  
tL1\q Qg  
今天就说到这里,明天继续说数据库操作。
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2006-09-03
学习目的:掌握php的流程控制 v |pHbX  
9>vB,8  
1、if..else 循环有三种结构 * kUb[  
a5d_= :S ;  
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: PGVp1TQ  
S&k/Pc  
if (expr) { statement } *"6A>:rQs  
MBU4Awj  
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 lL5*l,)To  
g2rH"3sC  
范例:本例省略大括号。 se}$/Y}t  
3O _O5  
<?php XaoVv2=G~  
if ($state==1)echo "哈哈" ; &zVXd  
?> ~XvMiWuo  
'P4V_VMK  
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 v |(N  
&NbSG+t  
范例:本例的执行部分有三行,不可省略大括号。 V%C'@m(/SZ  
LcNI$g;}Yf  
<?php f}ch1u>  
if ($state==1) { 98 uMD  
echo "哈哈 ; qw)Ou]L=  
echo "<br>" ; \8vZZt  
} =KD[#au6a  
?> 3vQVk  
u09D`QPP]  
YG*}F|1  
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 AI,E9  
-7J~^m2x  
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 L}A2$@  
<?php Bi"cWO  
if ($state==1) { 3RcnoXX_  
echo "哈哈" ; (l(d0g&p>  
echo "<br>"; Pi,86?  
} o4LVG  
else{ L&]{GNw  
echo "呵呵"; $?LegX  
echo "<br>"; X76rme  
} 2uF'\y  
?> Eq8:[o  
^?A>)?Sq  
9J<vkxG9`  
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 89P7iSV#*  
c`\qupnY  
直接看下面的例子 m Q<Vwx0  
xf|C{XV@H  
<?php u%OLXb  
if ( $a > $b ) { !RjC0,  
echo "a 比 b 大" ; aqQ  U7  
} elseif ( $a == $b ) { SaRn>n\  
echo "a 等于 b" ; ^(BE_<~  
} else { YhN:t?  
echo "a 比 b 小" ; $`lGPi(Jc  
} %/_E8GE  
?> zcio\P=^|B  
,.;{J|4P  
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 /L2.7`5  
f Avh!g  
2、 for 循环就单纯只有一种,没有变化,它的语法如下 e#WASHZN  
A-M6MW  
for (expr1; expr2; expr3) { statement } @f,/K1k  
ZK<c(,oZ^  
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 e{^lD.E  
L/5th}m  
下例是用 for 循环写的的例子。 Zl.,pcL  
KsqS{VVCh  
<?php BXytAz3  
for ( $i = 1 ; $i <= 10 ; $i ++) { 3S%/>)k  
echo "这是第".$i."次循环<br>" ; 5)->.*G*  
} tU>7 jo[-p  
?> zOy_qozk  
v9#F\F/  
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 %"|W qxv  
P#rS.CIh  
语法如下 ^^YP kh6sS  
w.+G+ r=  
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } H#T&7X_<  
(SA^> r  
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 x}{O9LiR  
3,Iu!KB  
<?php \#C]|\  
switch ( date ( "D" )) { EK\xc'6M  
case "Mon" : {c<cSrfI  
echo "今天星期一" ; [?XP[h gd  
break; bJw{U.  
case "Tue" : <uo@k'   
echo "今天星期二" ; `<hMrhfh  
break; {GGP8  
case "Wed" : _Y)Wi[  
echo "今天星期三" ; u!t<2`:h  
break; {.Brh"yC  
case "Thu" : DIkf#}  
echo "今天星期四" ; |>wGl  
break; f$--y|=  
case "Fri" : I`x[1%y2 F  
echo "今天星期五" ; m+x$LkP  
break; Bt(nm> Ng  
default: z0&Y_Up+5  
echo "今天放假" ; Ve xxdg  
break; R^INl@(O  
} ROO@EQ#`Z  
?> K :>O X  
f`[E^ zj  
这里需要注意的是break;别遗漏了,default,省略是可以的。 0u +_D8G  
]UGk"s5A  
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 ~*e@^Nv)v  
zT>BC}~.b  
今天就说到这里,明天开始说数据库的使用。
描述
快速回复

您目前还是游客,请 登录注册
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
认证码:
验证问题:
10+5=?,请输入中文答案:十五