ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:24.64KB ,
资源ID:10978378      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10978378.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(php源码新闻发布系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

php源码新闻发布系统.docx

1、php源码新闻发布系统第一讲:用 phpmyadmin 建立数据库首先建立一个数据库,名为 yayu 。在这个数据库下建立一个数据表,名为 news 。下面进入一个重点,那就是在表 news 下建立各个字段。 那么,什么叫字段呢?通俗点,就是一类事物的总称。比如说,所有的新闻发表时间用一个名词来代表(从偶的经验来看,用 phpmyadmin 建立字段可以用中文,但从习惯来说还是用英文,没办法,计算机美国最牛嘛)。偶们用“ time ”来表示。在字段 time 下可以有很多“发表时间,那么如何来区分这些时间呢,这个可以查询其它字段下的内容,比如偶们建立新闻的标题的字段为“ title ”, ti

2、tle 字段下的内容按照常理说来是没有一样的.所以可以通过一个标题来查询这个发表时间。其实我们可以让每个 title 或 time 下的内容都对应一个编号,那就是字段 “ id ”:字段“ id ”是一个人们默认的首选字段,其它字段下的内容可以重复出现,但这个字段却是从 1 开始增大的阿拉伯数字.在设置这个字段时,要设置主键、索引、唯一以及 autoincrement 。这个 auto-increment 就是自动增加的意思。当任一字段增加内容时,这个字段就自动增加 1 ,也就是说,任一字段都对应一个唯一的 id ,比如 1 、 2 、 7 下面谈谈新闻部分字段的建立。 1。 id :意义为每

3、个新闻的编号,它是唯一的,类型为 tingint ,这个 tingint 类型无须指定长度,系统默为 4 ;在“额外”中选择 auto-increment ,并选择主键. 2. author :意义为作者(新闻发布人),设置类型为 varchar ,设置这个字段长度时,如果考虑作者均为中国人,则 8 个字节为上限( 4 个汉字),但如果考虑到作者可能为外国人, 8 个字节显然太少了,对其它字段也存在同样的问题,在这里偶们把长度设置为 8 吧。 3. title :意义为新闻标题,类型为 varchar ,长度为 60 吧,属性为 primany key 。 4. content :意义为新闻的

4、内容,类型为 text 。这个类型无须设置长度了。 5. source :意义为新闻的来源,类型为 varchar ,长为 60 。 6。 date :意义为发表时间,类型为 datetime ,长度无须设置,属性为 primany key 。 下面补充以下字段类型的相关内容: 1 date :时间和日期类型。时间和日期类型还包括以下: datetime : 0000-0000 00:00:00 date: 0000-0000 timestamp: 00000000000000 ( 14 个 0 ,长度取决于显示尺寸) time: 00:00:00 year: 0000 2 conten t

5、字段代表新闻内容,由于其容量可能会很大,因此采用 text 类型(最多支持 65535 字节) 3 title 字段设置为 primany key ,如果不会有一条以的新闻具有相同的发表时间, date 字段也可以作为? primany key ,这样今后对新闻的排序和检索会更加方便。 4 text 类型的字段虽然也属于一种字符类型,但其大小不能指定,如果设置长度,则系统会提示 SQL 语句出错. 现在, news 数据表就建立好了。 由于新闻不是所有人都能增加的,只能有管理员来做,所以现在我们再来建立数据表 users 来存放管理员们。 1 : id :类型为 tinyint ,额外设置为

6、auto-increment、主键。 2 : name :意义为管理员名称,类型为 varchar ,长为 8 ,属性为 primany key 。 3 : password :意义为密码, 类型为 varchar ,长为 32 . 4 : mail :一样为邮件地址, 类型为 varchar ,长为 30 . 现在,两个数据库就设置好了,下面偶们进入新闻程序的开发中。第二讲:新闻程序的基础一连接数据库的基础 偶们添加、取出、修改、删除新闻都必须首先做一件事,那就是连接主机,选择数据库,向数据库发出请求。否则一切都是纸上谈兵。下面介绍三个重要的 MySQL 语句,分别是: mysql_pcon

7、nect( ) (连接主机), mysql_select_db( ) (选择数据库), mysql_query() (向数据库发出请求). 1 mysql_pconnect( ) 它的作用是连接主机。 语法为: mysql_pconnect( “ 要登陆的主机 , 登陆时的用户名 ”, 密码 ”); 如 mysql_pconnect( “localhost,”root,”); 其中的“ localhost ”、“ root ”都是 phpmyadmin 默认下的主机名和用户名,并且密码为空. 同功能的函数还有 mysql_connect( ) 。语法是一样的,区别在于前者开启一个长期连接,且无

8、法使用 mysql_close() 函数关闭,而后者使用完后要用 mysql_close() 及时的关闭.对于一个网站来说,使用前者比后者好.这样可以减轻 MySQL 服务器处理连接和关闭连接的负担。 这个函数成功连接后,会返回一个连接 ID 。因此,这个函数一般这样写: $link= mysql_pconnect( ); 说到这,补充一个函数 mysql_close() , 语法为: mysql_close(“ 要关闭的连接 ID”); 比如: mysql_close(link); 注:所有 ( ) 内都为字符串,有 符号时就无须 ” 了。 2 mysql_select_db( ) 它的作用

9、是选择一个数据库为当前数据库。以后的操作就都在这个数据库中进行了.这个函数如果执行成功,返回一个 true ,否则返回 false . 语法为: mysql_select_db( “ 数据库名称 , 连接的 ID”); 第二个参数可以省略,它会自动寻找并连接最后一个使用的连接 ID 。 在本程序中,这个语句偶们写成: mysql_select_db( “yayu,$link); 3 mysql_query() 它的作用是向服务器发出一个提出请求的字符串。 语法为: mysql_query(“ 提出问题的字符串 ”, 连接 ID); 其中第一个参数是一个完整的 MySQL 语句,第二个参数可以省

10、略,偶一般是把它省略的。 在使用这个函数前应该先用 mysql_select_db( ) 指定要使用的数据库。 当提问的字符串是 update 、 insert 或 delete 时,函数返回的结果是 true 或 false ,表明查询是否成功,如果提问字符串是 select 语句则返回一个结果 ID ,如果 select 发生错误,则返回 false . 了解了上面三个重要的函数后,偶们就可以对数据库发号施令了。那偶们用什么来发号施令呢?下面偶们再来看四个 MySQL 语句吧! 二向数据库发出请求语句基础知识 它们分别是: insert (向数据库插入数据)、 delete (删除数据表中

11、的数据)、 select (检索数据)、 update (更新数据)。 1 insert ():向数据库插入数据 。 语法: insert into 数据表名(字段,字段,) values(“ 字段 d 的内容 ,” 字段的内容 ) 语法: insert into 数据表名 set 字段 = 字段的内容 , 字段 2=” 字段 2 的内容 ”, 对中,字段名可以省略,但后面的 values 部分的内容必须要和 phpmyadmin 中定义的字段顺序一样. 下面请看例子: : insert into news(title,date,author,source,content) values($t

12、itle,date,$author,source,content) 注:上面的“ “代表了要添加字段的内容,定义时: = 内容 ; : insert into news set title=$title,author=author 注:如果内容是数字,则 ” 可以省略。 2 delete ():删除数据表中的数据 语法: delete from 数据表名 where 指定地点 limit 数字 如果没有“ where 指定地点”则表中所有数据都没了.“ limit 数字”可以告诉服务器可以删除的最大行数。 例子: delete from news where id=id limit 1 3.

13、select () : 检索数据 语法: select 字段名 , 字段 , from 数据表名 where 地点 如果想列出所有记录中所有列的数据,可以使用“ * “代表字段名. 例子:: select id,author from news where id=id : select * from news where id=id 4 update ():更新数据 语法和 insert 几乎是完全一样的。 如: update news set author=author,title=title where id=id 值得注意的是,使用 update 语句时,要注意使用 where 字句,否

14、则可能会导致大量的数据丢失。比如: update news set author=” 芽雨 这个操作会使表中所有的作者都变成“芽雨”了。 再举一个正面的例子,记录管理员的表 users 中,如果有一个字段为 age ,用来存储用户的年龄,一年后,他们要增加一岁,可以使用以下的语句: update users set age=age+1 太好了,偶们现在已经掌握程序大部分的基础了,还有小部分偶们以后在例子中掌握吧. 现在偶们面临的问题是如何写出算法了。第三讲:新闻程序的算法(一) - 添加新闻 一。添加新闻 添加新闻既是向数据库添加新的数据。 整个算法是这样的:管理员在表单中填写新闻的内容,包括

15、: title,author,source,content ,另外两个字段( id,time )的内容有服务器完成,当然也要自己写程序,只是不由自己手动而已。提交表单后,用 MySQL 语句将它们添加到数据库中。 下面简单介绍一下表单中 标签和 标签. 标签为单行文本框。偶们常用的属性有: name, type 。 name 属性指定了变量的名称,既这个名称代表了这个 中的内容。 type 属性指定了 input 中内容的性质。如果 type=text ,则为一般性的文字.如果 type=password ,则这个“ input 中的内容在浏览器一律以黑点显示,这样可以在输入内容时不会在无意中

16、被他人见到而造成数据安全问题. /textarea 标签为多行文本框,常用属性为 name 。 在本程序中此段程序如下所示: input name=”author type=text” size=”40” maxlength=”20” 在“ name=author ”中的 author” 就代表了“ ”中的内容。同样的,这个 author 也可以是 title” 或者其他,值得注意的是,这个 author 和字段 author 是不一样的。偶在这个地方提到两个非常相似的概念:字段 author 和变量 $author (上面的 author 实际上就是 $ author ,因为它代表了“ in

17、put 中的内容).虽然它们几乎是同名的,但可绝对不是一回事。 Author 是数据表 news 里的一个字段名, PHP 用它来有限定的访问 MySQL 中的数据,在程序中是不能用其它的字符替换的;而 $author 是本程序中用户自己设定的变量符号,其值由“ ”中对应元素的 name 属性得到。既然它只是变量符号,偶们就可以使用任意字段,只要保证与表单中对应元素的 name 属性一致就可。之所以选择用与字段名相同的字符,是因为这样偶们就不必再费力去多记一个变量名而已。 偶们再来看 /textarea 标签中的内容: textarea name=content cols=80” rows=”

18、15 wrap=HYSICAL 这个 textarea/textarea 中的内容是用来得到 content 字段内容的,因为此字段中的内容太多,所以只能用这个标签了。 当偶们填好这些内容后,只要提交就可以了,那么这一过程又是如何实现的呢? 下面偶们再来看以下的程序: 这里的 type=”submit/ type=”reset” 分别代表提交和重写新闻。 value 属性的内容在此按钮上显示出来。 name= reset/ name=”submit” 中的含义和上面所说的是一样的。 HTML 中的表单( form )元素是专门负责也用户进行交互式操作的。当点击类型为 submit 的按钮时,表

19、单中所有的元素都将以变量的形式提交给 action 所指的文件来处理。变量名由该元素的 name 属性来确定。在本程序中这个代码如下: 在这个地方偶们把处理数据的程序还是放在同一页面( action=addnews。php ),在 method 属性中偶们令 method=post ,这里的 post 是值传递的方式。那现在偶们就在 action 指定的页面来讨论以下的程序: $author=_POSTauthor; 这里的 $author 是偶们自己定义的变量名, author 是在 input 标签中 name 属性中定义的名字。 POST 为 form 中 method 定义的值传递方式

20、。通过这种值传递方式得到的数据,偶们一律用 $_POST” ” 收取. 完整的这类程序如下所示: if($_POSTsubmit”) author=$_POSTauthor; $department=$_POST”department”; $title=$_POSTtitle”; content=parsecontent(_POST”content); $date=date(y-m-d H:i”); mysql_query(INSERT INTO news(title,date,author,department,content) VALUES(title,date,$author,$depa

21、rtment,$content)); 其中的 date( ) 函数用法请查看其他书籍。上面一共是 5 个字段,还有一个字段 id 因为偶们在“额外”中选择了 autoincrement ,所以上面的数据插入到数据库时, id 就自动加 1 了. 当然在这个程序前,必须先连接好数据库,下面的所有与数据库连接的程序也是一样的,必须先连接还数据库.第三讲:新闻程序的算法(二) - 显示二显示新闻 添加新闻后,就可以让别人来看新闻了. 这里的算法是这样的:先在新闻首页上显示新闻的标题及其他附加内容(如发表时间),这可以用循环输出的办法输出所有的新闻的标题。要查看具体新闻的内容时,点击新闻标题的超级链接

22、进入一个新的页面查看这条新闻. 在开始这程序之前,链接好数据库。 当新闻很多时,偶们就要给新闻分页了,偶们设置好每页显示 10 条新闻。 具体的分页程序如下: $respage = mysql_query(”SELECT COUNT(*) FROM news;); /$num 是数据库中总纪录数 while(row = mysql_fetch_row($respage)) num = $row0; $recordnum =10; $pages = ceil(num/recordnum); / recordnum 是每页显示多少条记录, $pages 是一共有多少页 if ($_GETpage)

23、 / 获取 url 中的参数 page /current 是当前页 ,pre 是前一页的, next 是后一页, $pre 和 next 为后面前一页和后一页的连接参数 page 的值 / 如果 url 中的参数为 1 ,把当前页置为 1 前一页, pre 也为一, next 为 2 if(_GETpage=1) current = 1; $pre = 1; next = 2; else / 如果 url 中的参数不为一(不是第一页),就把当前页取值为 url 中获得的参数, $pre 为当前页减 1 , next 为加 1 current = _GET”page; $pre = $curre

24、nt1; next = current+1; else / 如果 url 中没有参数 page ,当前页置为 1 , $pre=1,$next=2 $current = 1; $pre = 1; $next = 2; now = ($current1)*$recordnum; $echopage = ”。$pages. 页 ”; echopage 。= tdfonta href=”.$_SERVER”HP_SELF”.?page=1 第一页 font/tdtda href=。$_SERVERHP_SELF.”?page=.$pages。” 最后一页 /afont 前一页 /a /font/td

25、”; echopage 。= tdn; for($i=1;i=$pages;i+) if(i=$current) $echopage .= $in; else echopage 。= ”option value=$ii/optionn; echopage 。= ”/select 页 ; $echopage 。= ”/tr/table”; 对这段程序偶就不做详细的讲解了。因为很麻烦,再说这和新闻程序的算法不是一回事,呵呵。在用的时候,偶们在输出的新闻标题后面这样写就可以了: echo td align=center.$echopage.”/td; 放在后面是因为 $echopage。 里面包含了

26、选择去第几页的程序。 偶们再来看以下程序: 1 : sql=SELECT FROM news order by id desc LIMIT $now,recordnum”; 这里的“ order by id desc 意为驱除的记录是按编号由大到小的顺序输出的,换句话说就是新闻的输出总是新发表的在前面。“ LIMIT $now,$recordnum ”限制了新闻输出的数目, id 的大小在 $now,$recordnum 之间,具体 $now,$recordnum 的数值请看上面的分页程序的讲解(粗黑体字部分). 2 : res=mysql_query($sql); 这条语句意思是向服务器发送

27、请求,并将返回的结果保存在 $res 中。 3 : $rows=fetch_assoc($res); 这条语句意思是将查询结果 res 的内容拆到一个数组 rows 中。如果 $res 中没有数据,函数返回 false 值。 fetch_assoc( ) 函数的作用和 mysql_fetch_row() 是一样的。 4 : while($rows) echo tr”; echo td align=left valign=middlea href=index.php?id=.rows”id.” target=_blankfont”.rowstitle”.”。$rowsdate”.”/a/td; echo /tr”; while($rows) 便是按 id 的由大到小的顺序输出新闻的。 $rows”title” , rowsauthor 就是数组形式的内容了. 下面来谈谈如何查看每一条新闻的内容。 偶们来看看上面第 4 个程序中的: a href=index。php?id=”.$rowsid。” target=_bl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1