PHP编程:用PHP+MySQL 完成小型站点告白办理
要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。mysql|告白|站点 图片链接告白也许是最为经常使用的收集告白形式,然而多条告白的静态随机显示可不是那末复杂的工作。PHP的文件上传函数供应了在这块468x60像素的区域(网页告白的尺度尺寸)完成可以依据权值巨细而随机显示告白的处理计划,从而防止了开辟FTP法式或是ASP和Perl CAI中需求外挂扩大才干完成此项功效的坏处。本例在PHP4+MySQL+Apache for Win9x/2000下调试经由过程,共包含两局部:用来增添新告白的法式AddNewAd.php3和显示告白的法式ShowAd.php3,都寄存在办事器PHP文件目次下的“test/guanggao/”目次中。在guanggao目次中创立一个寄存告白链接图片的子目次“adbanner/”。上面咱们按步调停止剖析。
1.起首,创立MySQL数据库:guanggao
在Windows情况下,创立一个MySQL空数据库很复杂,由于每一个数据库都是存在于mysql/data/目次下的一个子目次,所以只需在该目次下新建子目次guanggao就能够了,这时候数据库内还没有任何表和数据。
2.创立新增告白法式:AddNewAd.php3
设计思绪:个中先用表单失掉用户的新告白信息;然后用PHP函数copy()将链接图片(banner)文件上传到办事器adbanner目次下;最初将图片文件名、告白网址、申明、加权信息等写入创立的MySQL数据表ad中。该法式代码以下:
# AddNewAd.php3――增加新的告白 #
<center><h1>增加新告白</h1></center>
//表单用来输出新增告白信息,并交给上面的PHP法式处置;
//个中,加权值priority数字愈大,载入页面图片呈现的机率就愈高,默许为1。
<FORM ENCTYPE="multipart/form-data" ACTION="AddNewAd.php3" METHOD=POST>
告白 Banner: <input name=banner TYPE="file"><br>
告白网址URL: <input name=url type=text size=30><br>
图片链接申明ALT: <input name=alt type=text size=30><br>
显示加权: <input name=priority type=text size=5 value=1><br>
<input type="submit" VALUE="提交">
</FORM>
//处置表双数据的PHP法式;
<?php
//图片banner名和链接地址不克不及为空;
if (( banner!="") & ( url!="")) {
//若告白链接和图片名已被利用,必需另选;
if (file_exists("adbanner/". banner_name)) {
echo "告白图片. banner_name.已被利用,请另选!";
exit;
};
//上传链接图片文件名到adbanner目次;
copy( banner,"adbanner/". banner_name);
//毗连MySQL数据库;
connection = mysql_connect();
//选择数据源guanggao,履行查询;;
mysql_select_db("guanggao", );
query="SELECT * FROM ad";
result=mysql_query( query);
//假如数据表ad不存在,则按以下布局创立新数据表ad;
if(!result){
mysql_query("
create table ad(
url varchar(100) not null,
banner varchar(150) not null,
alt varchar(100) null,
priority tinyint(4) default 1 not null
)") or die(mysql_error());
}
//向数据表ad中拔出来自于表单的新数据;
query="insert into ad(url, banner, alt, priority) values( url, banner_name,
alt, priority)";
//拔出胜利则显示以下信息;
try=mysql_query( query);
if( try){
echo "一条告白新增完成,具体信息:
";
echo "<a href=" url"><img src="adbanner/ banner_name" alt=". alt." border=0></a><br>";
echo "告白网址: url<br>告白链接申明: alt<br>显示加权: priority ";
}
}
?>
3.创立显示告白法式:ShowAd.php3
设计思绪:失掉数据库表中一切各列信息分离存到响应的一维数组中,将一切告白的权值相加失掉一个最大随机数,每次载入页面用srand() 发生一个随机树种子,再用rand()函数发生一个从1到最大随机数之间的一个随机数,然后依照必定的划定规矩随机显示分歧告白条,权值越大被显示的时机越大。
# ShowAd.php3――随机显示告白 #
<?php
//毗连选择数据库;
connection = mysql_connect();
mysql_select_db("guanggao", connection);
//履行查询失掉告白条数;
query="SELECT url, banner, alt, priority FROM ad where priority > 0";
result=mysql_db_query("guanggao", query);
numrows=mysql_num_rows( result);
//利用mysql_fetch_object()函数获得有效的列信息并存到响应数组中;
while( row = mysql_fetch_object( result)) {
adurl[]= row->url;
adbanner[]= row->banner;
adalt[]= row->alt;
adpriority[]= row->priority;
}
//初始化两头变量;
numcheck= numrows;
i= pricount=0;
//失掉最大随机数;
while( numcheck) {
pricount+= adpriority[ i];
i++; numcheck--;
}
//法式履行时的百万分之一秒发生随机数种子;
srand((double)microtime()*1000000);
//失掉1到最大随机数之间的一个随机数;
pri = rand(1, pricount);
//两头变量清零;
pricount=0;
//按加权值分歧,发生用来显示告白的、元素为字串的数组;
for( i=0; i< numrows-1; i++) {
pricount += adpriority[ i];
if ( pri <= pricount) {
ad[]="<a href=" adurl[ i]" target=new></a>";
}
}
//显示告白,权值越大,显示时机越大;
echo ad;
?>
要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 Ps:以上纯属原创,如有雷同,纯属巧合 兴趣是最好的老师,百度是最好的词典。 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 写的比较杂,因为我也是个新手,不当至于大家多多指正。 爱上php,他也会爱上你。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
页:
[1]
2