|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我先解释一下我的学习思路。 十天学会php之第一天
以 Apache web server 和 MY SQL 作为WEB办事器和数据库在php-4.3.3下的情况做法式复杂的构建和会见检查数据库用 PHPMYADMIN。
PHP的语法:
1、嵌入办法:
PHP可所以以<?php或是<?为入手下手符号,停止符号是?>,固然也能够本人指定。
2、援用文件:
援用文件的办法有两种:require 及 include。
require 的利用办法如 require("MyRequireFile.php"); 。这个函数凡是放在 PHP 法式的最后面,PHP 法式在履行前,就会先读入 require 所指定引入的文件,使它酿成 PHP 法式网页的一部分。经常使用的函数,亦可以这个办法将它引入网页中。
include 利用办法如 include("MyIncludeFile.php"); 。这个函数通常为放在流程掌握的处置局部中。PHP 法式网页在读到 include 的文件时,才将它读出去。这类体例,可以把法式履行时的流程复杂化。
3、正文办法:
<?php
echo "这是第一种例子。\n" ; // 本例是 C++ 语法的正文
/* 本例采取多行的
正文体例 */
echo "这是第二种例子。\n" ;
echo "这是第三种例子。\n" ; # 本例利用 UNIX Shell 语法正文
?>
4、变量类型:
$mystring = "我是字符串" ;
$NewLine = "换行了\n" ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4E+2 ;
$MyArray1 = array( "子" , "丑" , "寅" , "卯" );
这里引出两个成绩:第一PHP变量以"$"开首,第二PHP语句以";"开头。这两个漏掉也是法式上大多毛病地点。
5、运算符号:
数学运算:
符号 意义
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算
% 取余数
++ 累加
-- 递加
字符串运算:
运算符号只要一个,就是英文的句号"."。它可以将字符串联接起来,酿成兼并的新字符串。
<?
$a = "PHP 4" ;
$b = "功效壮大" ;
echo $a.$b;
?>
这里也引出两个成绩,起首PHP中输入语句是echo,第二相似ASP中的<%=变量%>,PHP中也能够<?=变量?>。
逻辑运算:
符号 意义
< 小于
> 大于
<= 小于或等于
>= 大于或等于
== 等于
!= 不等于
&& 并且 (And)
and 并且 (And)
|| 或 (Or)
or 或 (Or)
xor 异或 (Xor)
! 不 (Not)
明天就说到这里,今天说一下贱程掌握。
十天学会php之第二天
进修目标:把握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 轮回时,请当心利用,由于太多层的轮回轻易使设计的逻辑出成绩,或少打了大括号等,城市形成法式呈现稀里糊涂的成绩。
2、 for 轮回就纯真只要一种,没有变更,它的语法以下
for (expr1; expr2; expr3) { statement }
个中的 expr1 为前提的初始值。expr2 为判别的前提,凡是都是用逻辑运算符号 (logical operators) 当判别的前提。expr3 为履行 statement 后要履行的部分,用来改动前提,供下次的轮回判别,如加一..等等。而 statement 为合适前提的履行局部法式,若法式只要一行,可以省略大括号 {}。
下例是用 for 轮回写的的例子。
<?php
for ( $i = 1 ; $i <= 10 ; $i ++) {
echo "这是第".$i."次轮回<br>" ;
}
?>
3、 switch 轮回,凡是处置复合式的前提判别,每一个子前提,都是 case 指令局部。在实作上若利用很多相似的 if 指令,可以将它综分解 switch 轮回。
语法以下
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
个中的 expr 前提,凡是为变量称号。而 case 后的 exprN,凡是暗示变量值。冒号后则为合适该前提要履行的局部。注重要用 break 跳离轮回。
<?php
switch ( date ( "D" )) {
case "Mon" :
echo "明天礼拜一" ;
break;
case "Tue" :
echo "明天礼拜二" ;
break;
case "Wed" :
echo "明天礼拜三" ;
break;
case "Thu" :
echo "明天木曜日" ;
break;
case "Fri" :
echo "明天礼拜五" ;
break;
default:
echo "明天放假" ;
break;
}
?>
这里需求注重的是break;别漏掉了,default,省略是可以的。
很分明的,上述的例子用 if 轮回就很费事了。固然在设计时,要将呈现机率最大的前提放在最后面,起码呈现的前提放在最初面,可以增添法式的履行效力。上例因为天天呈现的机率不异,所以不必注重前提的按次。
明天就说到这里,今天入手下手说数据库的利用。
十天学会php之第三天
进修目标:学会构建数据库
在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语句便可。
明天就说到这里,今天持续说数据库操作。
十天学会php之第四天
进修目标:学会毗连数据库
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数据库。在实践使用中应该增强点毛病判别。
明天就说到这里,今天再说一下数据库的读取。
十天学会php之第五天
进修目标:学会读取数据
先看两个函数:
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."<br>";
}
?>
固然,表user中有一个username的字段,这就相似asp中的
<%
exec="select * from user"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
do while not rs.eof
response.write "username:"&rs("username")&"<br>"
rs.movenext
loop
%>
固然先要毗连数据库,普通咱们 require_once('conn.php');而conn.php外面就是上一次说的毗连数据库的代码。
小小的两条号令可以完成读取数据的任务了,明天说到这里下一次说数据的添加删除修正。
十天学会php之第六天
进修目标:学会添加删除修正数据
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。
十天学会php之第七天
进修目标:学会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>
</tr>
</table></td></form>
</tr>
</table>
处置文件是如许
<?
require_once('conn.php');
session_start();
$username=$_POST['username'];
$password=$_POST['password'];
$exec="select * from admin where username='".$username."'";
if($result=mysql_query($exec))
{
if($rs=mysql_fetch_object($result))
{
if($rs->password==$password)
{
$_SESSION['adminname']=$username;
header("location:index.php");
}
else
{
echo "<script>alert('Password Check Error!');location.href='login.php';</script>";
}
}
else
{
echo "<script>alert('Username Check Error!');location.href='login.php';</script>";
}
}
else
{
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>";
}
?>
conn.php是如许:
<?
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
?>
因为 $_SESSION['adminname']=$username;咱们可以如许写验证是不是上岸语句的文件:checkadmin.php
<?
session_start();
if($_SESSION['adminname']=='')
{
echo "<script>alert('Please Login First');location.href='login.php';</script>";
}
?>
呵呵,明天说到这里,今天说一下怎样弄一个分页。
十天学会php之第八天
进修目标:做一个分页显示
关头就是用到了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>
这是一个大致的思绪,人人可以想一想怎样来优化?明天说到这里,今天说一下一些注重的成绩。
十天学会php之第九天
进修目标:注重事项
1、注重不要漏了分号
2、注重不要漏了变量前的$
3、利用SESSION的时分注重不要漏掉session_start();
假如产生毛病的时分,可以采取以下办法:
1、假如是SQL语句失足,就正文了然后输入SQL语句,注重也要正文调后续的履行SQL语句
2、假如是变量为空,大多是没有传递到位,输入变量反省一下,反省一下表单的id和name
3、假如是数据库毗连失足,反省是不是准确翻开MY SQL和是不是漏掉了毗连语句
4、注重缩进,扫除括号不区配的毛病
在做大网站的时分,我的思绪是先构建数据库,肯定每个字段的感化,和表之间的关系。然后设计后台界面,从添加数据入手下手做起,由于添加是不是胜利可以直接到数据库外面验证,做好了添加再做显示的页面,最初才是二者的联合。普通来讲后台就包含添加删除修正和显示,后台没有成绩了,前台也没有甚么大成绩。前台还需求注重平安性和容错还有就是输入格局。
好了,明天说到这里,今天说一下假如用PHP上传文件和发邮件。
十天学会php之第十天
进修目标:学会用PHP上传文件和发邮件
上传文件表单必需加上 enctype="multipart/form-data" 和 <input type="file" name="file">上面看一下代码:
$f=&$HTTP_POST_FILES['file'];
$dest_dir='uploads';//设定上传目次
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名防止反复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性
上传的文件名为date("ymd")."_".$f['name'] ,可以在今后拔出到数据库的时分用到,PHP实践上是把你上传的文件从一时目次挪动到指定目次。move_uploaded_file($f['tmp_name'],$dest);这是关头
至于发邮件就加倍复杂,可使用mail()函数mail("收件人地址","主题","注释","From:发件人\r\nReply-to:发件人的地址");
不外mail()需求办事器的撑持,在WINDOWS下还需求设置装备摆设SMTP办事器,普通来讲里面的LINUX空间都行。
仿佛上传文件和发邮件比ASP复杂良多,只需挪用函数就能够了。ASP还需求用到办事器的分歧组件好比FSO、JMAIL甚么的。
十天学会PHP说到这里了,想告知人人的是PHP入门可所以十天,然而精晓决不是十天啊,还需求人人本人去研讨。
你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧。 |
|