灵魂腐蚀 发表于 2015-2-3 23:59:21

PHP编程:PHP对文本数据库的根基操作办法

在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。   PHP完成对文本数据库的数据显示、到场、修正、删除、查询五大根基操作的办法
我用一个留言本法式作为例子,论述PHP完成对文本数据库的数据显示、到场、修正、删除、查询五大根基操作的办法。
此文本数据库共有字段10个:客户IP、讲话工夫、客户名、客户EMAIL、客户主页地址、留言脸色图片名、客户QQ、客户抽象图片、留言内容、办理员答复内容。
1、到场数据法式段。
$date=date("Y-m-d H:i:s");//获得体系工夫
$ip = $HTTP_SERVER_VARS; //获得讲话的IP地址
$text=encode($gb_text);//去失落留言内容前面的空格.
$fp=fopen("gb.dat","a");//以只写形式翻开gb.dat文本文件,文件指针指向文件尾部.
$str=$ip." ".$date." ".$gb_name." ".$gb_email." ".$gb_home." ".$face." ".$gb_qq." ".$head." ".$text." ".$reply."\n";//将一切留言的数据付与变量$str," "的目标是用来从此作数据朋分时的数据距离符号。
fwrite($fp,$str);//将数据写入文件
fclose($fp);//封闭文件
showmessage("留言胜利!","index.php","3");//留言胜利,3秒后主动前往主界面。
个中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由讲话表单传过去的数据。
2、数据显示法式段
<?
if (file_exists("gb.dat")){//检测文件是不是存在
$array=file("gb.dat");//将文件全体内容读入到数组$array
$arr=array_reverse($array);//将$array里的数据安行翻转分列(即最初一行当第一行,依此类推)读入数组$arr的每个单位($arr...)。
$num=count($array);//获得数组$array里的信息数(一行动一条信息)
if ($num>0){//假如信息数大于零(即文本数据库不为空)
$total=ceil($num/$pagesize);//盘算总页数(取最大整数,即凡是有小数点都进一取整,$pagesize为预设的每页显示的信息数)
if($page<1){//假如以后页面数码号小于1
$page=1;//则赋值为1
}
$number=($page-1)*$pagesize;//盘算以后所显示第一个留言的数码号(数码号从零入手下手,次要是到达与数组单位号对应的目标)
for($i=0;$i<=$pagesize-1;$i++){//进入轮回
$row=explode(" ",$arr[$number]);//以" "作为朋分符,朋分数组$arr中每第$number个单位的数据,并将这些数据付与数组$rom
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//将数组$row里的单位数据按按次付与括号里的变量
?>
<img src=<? echo $head ?> >//显示客户抽象图片
<br>
<font color="#0099CC">昵称【<? echo $name ?><font size="2">】<br>//显示客户名
宣布于:<? echo $datetime ?>//显示留言宣布工夫
<br>
<img src=<? echo $face ?>>//显示客户留言脸色图片
<? echo $name ?>说:<? echo $text; ?>//显示客户留言内容
<br>
<? echo $reply ?>//显示答复内容
<br>
<a href="<? echo $home ?>" target="_blank">会见<? echo $name ?>的主页</a>//客户主页的超毗连
<a href="mailto:<? echo $email ?>">给<? echo $name ?>发信</a>//客户E-MAIL的毗连
<? echo $name ?>的QQ号码是<? echo $qq ?>//显示客户的QQ号码
<? echo $name ?>的IP地址为<? echo $ip ?>" //显示客户的IP地址
<a href="reply.php?time=<? echo $datetime ?>">答复</a>//留言答复的毗连语句
<a href="del.php?time=<? echo $datetime ?>">删除</a>//留言删除的语句(以客户留言工夫$datetime作为删除标识)
<br>
<?
if ($number == $num-1)//假如数组的单位号等于总留言数减一(由于单位号以零入手下手的,所以这意味着这是最初一条留言)
{
break;//跳出轮回
}
$number = $number + 1; //数组单位号加1
}//轮回停止符
}
if ($page <> 1)//假如以后页面数码号不等于1
{
$back = $page - 1;//以后页面数码号减1,并将此值付与变量$back
echo "<a href=index.php?page=1>第一页</a>";//显示第一页的毗连
echo " <a href=index.php?page=$back>上一页</a>" ;以后页面数码号等于$back,并显示其毗连
}
if ($page <> $total)//假如以后页面数码号不等于总页数号(最初一页数码号)
{
$next = $page + 1;//以后页面数码号加1并付与变量$next
echo " <a href=index.php?page=$next>下一页</a>" ;//显示下一页毗连
echo " <a href=index.php?page=$total>最初一页</a>"; 显示最初一页毗连
}
echo "页数:$page / $total";//显示以后页面数码号和显示最初一页数码号
echo "共有 $num 条留言";//显示留言数信息
}
else {
echo "<center>以后没有任何留言!</center>";//假如文件内容为空则显示的信息
}
else {
echo "<center>数据文件丧失,请接洽办理员!或宣布留言从头创立数据文件!</center>";//假如文件不存在显示的信息
}
3、数据修正法式段
$list=file("gb.dat");//读取全部gb.dat文件到数组$list,数组每个元素为一条留言($list是第一条留言的数据、$list是第一条留言的数据.....
$n=count($list);//盘算$list内容里的留言总数,并付与变量$n
if ($n>0){ //假如留言数大于0
$fp=fopen("gb.dat","w");//则以只写形式翻开文件gb.dat
$gb_reply=encode($gb_reply);
for ($i=0;$i<$n;$i++) {//进入轮回
if(eregi($ttime,$list[$i])){//将送来发留言工夫$ttime与数组单位$list里内容停止字串婚配对照
$f=explode(" ",$list[$i]);//假如找到婚配,就以" "作为分隔符,切开留言信息$list[$i](第$i条留言),并将这些数据付与数组$f
$f=$gb_reply;//将$f(留言信息最初一条数据)用$gb_reply(答复内容)取代。
$list[$i]=$f." ".$f." ".$f." ".$f." ".$f." ".$f." ".$f." ".$f." ".$f." ".$f."\n"; //将数组单位$list[$i]的内容用数组$f加上分隔符" "取代(个中$f是修正了的新数据)。
break;//跳出轮回
}
}//轮回停止符
}
FOR($i=0;$i<=$n;$i++){//进入轮回
fwrite($fp,$list[$i]);//将数组$list的每一个单位为一行,写入文件gb.dat
}//轮回停止符
fclose($fp);//封闭文件
showmessage("答复胜利!","index.php");//答复胜利,主动前往主界面。
4、数据删除法式段
$list=file("gb.dat");//读取全部gb.dat文件到数组$list,数组每个元素为一条留言($list是第一条留言的数据、$list是第一条留言的数据.....
$n=count($list);//盘算$list内容里的留言总数,并付与变量$n
if ($n>0){//假如留言数大于0
$fp=fopen("gb.dat","w");//则以只写形式翻开文件gb.dat
for ($i=0;$i<$n;$i++) {//进入轮回
if(eregi($ttime,$list[$i])){//将发送过去发留言工夫$ttime与数组$list[$i]里的字串停止婚配对照
$list[$i]="";//假如婚配胜利,则将$list[$i]清空(到达删除的目标)
break;//跳出轮回
}
}//轮回停止符
FOR($i=0;$i<=$n;$i++){//进入轮回
fwrite($fp,$list[$i]);//将数组$list的每一个单位为一行,写入文件gb.dat
} //轮回停止符
fclose($fp);//封闭文件
showmessage("删除胜利!","index.php");//删除胜利,主动前往主界面。
}
5、数据查询法式段
<form action="search.php" method="post">
<font color="#0099CC" size="2">搜刮关头字:
<input name="found" type="text" id="found" style="background-color:#FFFFFF; color:#8888AA; border: 1 double #3399CC" size="12">
<input name="submit" type="image" src="http://www.webjx.com/htmldata/2006-11-27/image/search.gif" alt="留言搜刮">
</font></td>
</tr>
</table>
</form>
////////////////////////////////下面是搜刮表单语句段
<?
$id=0;
$list=file("gb.dat");//读取全部gb.dat文件到数组$list,数组每个元素为一条留言($list是第一条留言的数据、$list是第一条留言的数据.....
$n=count($list);//盘算$list内容里的留言总数,并付与变量$n
$found=trim($found);
if (!$found){ //假如$found为假
echo "<center>您没有输出任何干键字!</center>";//作相干显示
}
else {
if($n>0){//假如留言数大于0
for ($i=0;$i<$n;$i++) {//进入轮回
if(eregi($found,$list[$i])){//输出的关头字与数组$list[$i]里的字串停止婚配对照
$row=explode(" ",$list[$i]); $id=1; //假如找到婚配,就以" "作为分隔符,切开留言信息$list[$i](第$i条留言),并将这些数据付与数组$row.并将变量$id付与1,以便作为是不是找到婚配的判别。
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//将数组$row里的单位数据按按次付与括号里的变量
?>
<img src=<? echo $head ?> >//显示客户抽象图片
<br>
<font color="#0099CC">昵称【<? echo $name ?><font size="2">】<br>//显示客户名
宣布于:<? echo $datetime ?>//显示留言宣布工夫
<br>
<img src=<? echo $face ?>>//显示客户留言脸色图片
<? echo $name ?>说:<? echo $text; ?>//显示客户留言内容
<br>
<? echo $reply ?>//显示答复内容
<br>
<a href="<? echo $home ?>" target="_blank">会见<? echo $name ?>的主页</a>//客户主页的超毗连
<a href="mailto:<? echo $email ?>">给<? echo $name ?>发信</a>//客户E-MAIL的毗连
<? echo $name ?>的QQ号码是<? echo $qq ?>//显示客户的QQ号码
<? echo $name ?>的IP地址为<? echo $ip ?>" //显示客户的IP地址
<a href="reply.php?time=<? echo $datetime ?>">答复</a>//留言答复的毗连语句
<a href="del.php?time=<? echo $datetime ?>">删除</a>//留言删除的语句(以客户留言工夫$datetime作为删除标识)
<br>
<?
}
}//轮回停止符
}}
if($id==0){ echo "<center>没有找到与关头字婚配的留言!</center>";}//假如$id=0则暗示没找到婚配,显示相干提醒
?>

讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴。

第二个灵魂 发表于 2015-2-4 07:54:56

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

飘灵儿 发表于 2015-2-5 15:46:29

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

变相怪杰 发表于 2015-2-9 17:51:09

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

只想知道 发表于 2015-2-27 14:26:42

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

小妖女 发表于 2015-3-6 03:54:11

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

愤怒的大鸟 发表于 2015-3-8 02:47:10

写的比较杂,因为我也是个新手,不当至于大家多多指正。

兰色精灵 发表于 2015-3-15 20:15:44

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

爱飞 发表于 2015-3-22 03:32:29

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

谁可相欹 发表于 2015-3-23 06:52:08

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

蒙在股里 发表于 2015-3-27 00:20:10

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

再见西城 发表于 2015-3-27 09:09:43

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

飘飘悠悠 发表于 2015-3-28 01:22:11

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

因胸联盟 发表于 2015-4-12 06:01:36

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

分手快乐 发表于 2015-4-15 00:47:45

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

海妖 发表于 2015-4-17 15:56:10

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

山那边是海 发表于 2015-4-21 20:14:22

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

莫相离 发表于 2015-5-1 00:10:12

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

冷月葬花魂 发表于 2015-6-14 20:19:35

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
页: [1]
查看完整版本: PHP编程:PHP对文本数据库的根基操作办法