一个简单的PHP新闻发布系统

芽雨原创PHP新闻系统教程(第一版)第一讲:用 phpmyadmin 建立数据库

首先建立一个数据库,名为 yayu 。在这个数据库下建立一个数据表,名为 news 。下面进入一个重点,那就是在表 news 下建立各个字段。

那么,什么叫字段呢?通俗点,就是一类事物的总称。比如说,所有的新闻发表时间用一个名词来代表(从偶的经验来看,用 phpmyadmin 建立字段可以用中文,但从习惯来说还是用英文,没办法,计算机美国最牛嘛)。偶们用“ time ”来表示。在字段 time 下可以有很多“发表时间”,那么如何来区分这些时间呢,这个可以查询其它字段下的内容,比如偶们建立新闻的标题的字段为“ title ”, title 字段下的内容按照常理说来是没有一样的。所以可以通过一个标题来查询这个发表时间。其实我们可以让每个 title 或 time 下的内容都对应一个编号,那就是字段——

“ id ”:字段“ id ”是一个人们默认的首选字段,其它字段下的内容可以重复出现,但这个字段却是从 1 开始增大的阿拉伯数字。在设置这个字段时,要设置主键、索引、唯一以及 auto-increment 。这个 auto-increment 就是自动增加的意思。当任一字段增加内容时,这个字段就自动增加 1 ,也就是说,任一字段都对应一个唯一的 id ,比如 1 、 2 、 7 ……

下面谈谈新闻部分字段的建立。

1. id :意义为每个新闻的编号,它是唯一的,类型为 tingint ,这个 tingint 类型无须指定长度,系统默为 4 ;在“额外”中选择 auto-increment ,并选择主键。

2. author :意义为作者(新闻发布人),设置类型为 varchar ,设置这个字段长度时,如果考虑作者均为中国人,则 8 个字节为上限( 4 个汉字),但如果考虑到作者可能为外国人, 8 个字节显然太少了,对其它字段也存在同样的问题,在这里偶们把长度设置为 8 吧。

3. title :意义为新闻标题,类型为 varchar ,长度为 60 吧,属性为 primany key 。

4. content :意义为新闻的内容,类型为 text 。这个类型无须设置长度了。

5. source :意义为新闻的来源,类型为 varchar ,长为 60 。

6. date :意义为发表时间,类型为 datetime ,长度无须设置,属性为 primany key 。

下面补充以下字段类型的相关内容:

1 . date :时间和日期类型。时间和日期类型还包括以下:

⊕ datetime : 0000-00-00 00:00:00

⊕ date: 0000-00-00

⊕ timestamp: 00000000000000 ( 14 个 0 ,长度取决于显示尺寸)

⊕ time: 00:00:00

⊕ year: 0000

2 . conten t 字段代表新闻内容,由于其容量可能会很大,因此采用 text 类型(最多支持 65535 字节)

3 . title 字段设置为 primany key ,如果不会有一条以的新闻具有相同的发表时间, date 字段也可以作为? primany key ,这样今后对新闻的排序和检索会更加方便。

4 . text 类型的字段虽然也属于一种字符类型,但其大小不能指定,如果设置长度,则系统会提示 SQL 语句出错。

现在, news 数据表就建立好了。

由于新闻不是所有人都能增加的,只能有管理员来做,所以现在我们再来建立数据表 users 来存放管理员们。

1 : id :类型为 tinyint ,额外设置为 auto-increment、主键。

2 : name :意义为管理员名称,类型为 varchar ,长为 8 ,属性为 primany key 。

3 : password :意义为密码, 类型为 varchar ,长为 32 。

4 : mail :一样为邮件地址, 类型为 varchar ,长为 30 。

现在,两个数据库就设置好了,下面偶们进入新闻程序的开发中。

 

 

 

 

 

芽雨原创php新闻系统教程(第一版) 第二讲:新闻程序的基础


一.连接数据库的基础

偶们添加、取出、修改、删除新闻都必须首先做一件事,那就是连接主机,选择数据库,向数据库发出请求。否则一切都是纸上谈兵。下面介绍三个重要的 MySQL 语句,分别是: mysql_pconnect( ) (连接主机), mysql_select_db( ) (选择数据库), mysql_query() (向数据库发出请求)。

1 . mysql_pconnect( )

它的作用是连接主机。

语法为: mysql_pconnect( “ 要登陆的主机 ”,” 登陆时的用户名 ”,” 密码 ”);

如 mysql_pconnect( “localhost”,”root”,””);

其中的“ localhost ”、“ root ”都是 phpmyadmin 默认下的主机名和用户名,并且密码为空。

同功能的函数还有 mysql_connect( ) 。语法是一样的,区别在于前者开启一个长期连接,且无法使用 mysql_close() 函数关闭,而后者使用完后要用 mysql_close() 及时的关闭。对于一个网站来说,使用前者比后者好。这样可以减轻 MySQL 服务器处理连接和关闭连接的负担。

这个函数成功连接后,会返回一个连接 ID 。因此,这个函数一般这样写:

$link= mysql_pconnect( );

说到这,补充一个函数 mysql_close() ,

语法为: mysql_close(“ 要关闭的连接 ID”);

比如: mysql_close($link);

注:所有 ( ) 内都为字符串,有 $ 符号时就无须 ”” 了。

2 . mysql_select_db( )

它的作用是选择一个数据库为当前数据库。以后的操作就都在这个数据库中进行了。这个函数如果执行成功,返回一个 true ,否则返回 false 。

语法为: mysql_select_db( “ 数据库名称 ”,” 连接的 ID”);

第二个参数可以省略,它会自动寻找并连接最后一个使用的连接 ID 。

在本程序中,这个语句偶们写成: mysql_select_db( “yayu”,$link);

3 . mysql_query()

它的作用是向服务器发出一个提出请求的字符串。

语法为: mysql_query(“ 提出问题的字符串 ”, 连接 ID);

其中第一个参数是一个完整的 MySQL 语句,第二个参数可以省略,偶一般是把它省略的。

在使用这个函数前应该先用 mysql_select_db( ) 指定要使用的数据库。

当提问的字符串是 update 、 insert 或 delete 时,函数返回的结果是 true 或 false ,表明查询是否成功,如果提问字符串是 select 语句则返回一个结果 ID ,如果 select 发生错误,则返回 false 。

了解了上面三个重要的函数后,偶们就可以对数据库发号施令了。那偶们用什么来发号施令呢?下面偶们再来看四个 MySQL 语句吧!



二.向数据库发出请求语句基础知识

它们分别是: insert (向数据库插入数据)、 delete (删除数据表中的数据)、 select (检索数据)、 update (更新数据)。

1 insert ():向数据库插入数据 。

语法A: insert into 数据表名(字段1,字段2,……) values(“ 字段1 d 的内容 ”,” 字段的2内容 ” …… )

语法B: insert into 数据表名 set 字段1 =” 字段1的内容 ”, 字段 2=” 字段 2 的内容 ”, ……

对A中,字段名可以省略,但后面的 values 部分的内容必须要和 phpmyadmin 中定义的字段顺序一样。

下面请看例子:

A: insert into ne
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大家说数据库无,我补充一下.data 那个文件夹就是数据库,只是MYSQL文件.有些网友不要乱批评.根据大家的意见,改为4分,网友啊!这个系统可使本人一个一个字敲进去的啊 !我这个系统可是开源免费的。 带有评论、搜索、后台管理的一新闻图片发布系统,采用php+mysql.并且自动生成热点新闻、最进新闻。 制作人:牛文军 QQ:350203667 -- phpMyAdmin SQL Dump -- version 2.11.2.1 -- http://www.phpmyadmin.net -- -- 主机: localhost -- 生成日期: 2010 年 11 月 12 日 13:52 -- 服务器版本: 5.0.45 -- PHP 版本: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- 数据库: `nwjxt` -- -- -------------------------------------------------------- -- -- 表的结构 `gonggao` -- CREATE TABLE `gonggao` ( `id` int(100) NOT NULL auto_increment, `conent` varchar(254) NOT NULL default '', `times` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ; -- -- 导出表中的数据 `gonggao` -- INSERT INTO `gonggao` (`id`, `conent`, `times`) VALUES (4, 'ghhg', '2007-11-24'), (5, 'dsfds\r\nsdfsdf', '2007-11-24'), (6, 'fdgsds', '0000-00-00'), (7, 'dsfafsd', '2007-11-24'), (8, 'dsfadf', '2007-11-24'), (9, 'sdfsdf', '2007-11-24'), (10, 'sdafasd', '2007-11-24'), (11, 'sdafsadf', '2007-11-24'), (13, '°¥£¡£¡£¡£¡\r\nÕÒ¹¤×÷Õ¦¾ÍÕâôÄÑÄØ£¿£¿', '2008-04-16'); -- -------------------------------------------------------- -- -- 表的结构 `news` -- CREATE TABLE `news` ( `id` int(100) NOT NULL default '0', `news_id` int(10) NOT NULL default '0', `content` text NOT NULL, `times` date NOT NULL default '0000-00-00', `title` varchar(100) NOT NULL default '', `poster` varchar(10) NOT NULL default '', `hotnumb` int(255) NOT NULL default '0', PRIMARY KEY (`news_id`,`news_id`), UNIQUE KEY `id` (`id`), UNIQUE KEY `id_2` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- 导出表中的数据 `news` -- INSERT INTO `news` (`id`, `news_id`, `content`, `times`, `title`, `poster`, `hotnumb`) VALUES (0, 10, 'ÀÏÆÅÎÒ°®Äã\r\n', '0000-00-00', 'ÀÏÆÅÎÒ°®Äã', 'Å£', 27), (1, 11, 'ÐÂÎÅ·¢²¼ÏµÍ³', '0000-00-00', 'ÐÂÎÅ', 'Å£', 16), (2, 1, 'Ììˮʦ·¶Ñ§Ôº', '0000-00-00', 'Ììˮʦ·¶Ñ§Ôº', 'admin', 30), (3, 14, 'kjsjkljfskld', '0000-00-00', 'sadgsdafg', 'fdg', 21), (4, 2, 'sadfasdfs', '0000-00-00', 'sadgfasd', 'sadgs', 2), (5, 3, 'sdagdfsh', '2008-01-15', 'jkjhl', '11', 6), (6, 4, '¹þ¹þ ˹µÙ·Ò ˹µÙ·Ò´ó¹ø·¹¸Â\r\n·´¶Ô¹û¸¹¶éÂ俼¹Å¶Ófd\r\nkdflkg;ldf  \r\nkfgl;dfk\r\n\r\nfddsf ghdsfhjkhjl\\\r\nghjdgh\r\nfhjkh\r\nfdghjfghk\r\ndfhi\r\n\r\n ', '2008-04-16', 'ÈÈÁÒ×£ºØÐÂÎÅ·¢²¼ÏµÍ³V.01·¢²¼', 'Å£Îľü', 7); -- -------------------------------------------------------- -- -- 表的结构 `pl` -- CREATE TABLE `pl` ( `id` int(10) NOT NULL auto_increment, `news_id` varchar(10) NOT NULL default '', `name` varchar(10) NOT NULL default '', `time` date NOT NULL default '0000-00-00', `file1` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ; -- -- 导出表中的数据 `pl` -- INSERT INTO `pl` (`id`, `news_id`, `name`, `time`, `file1`) VALUES (1, '10', 'sxfsd', '0000-00-00', 'sdafgsadgdafgdf'), (2, '10', 'gfdeg', '2008-04-14', 'dfsgdf'), (3, '1', 'gfdeg', '2008-04-14', 'dfsgdf'), (4, '1', 'gfdeg', '2008-04-14', 'dfsgdf'), (5, '', 'niuwenjun', '2008-04-14', '´ó¼ÒºÃ£¡'), (6, '10', 'º£¹Ø·¨', '2008-04-14', '¸ºµçºÉ'), (12, '11', 'Å£', '2008-04-15', 'ÎҺܰ®´ó¼Ò£¡'), (11, '11', 'sdfs', '2008-04-15', 'sdfasdf'), (10, '10', 'niuwenjun', '2008-04-15', 'ÎÒ°® Äã £¡£¡»ú¹þ¹þ'), (13, '10', '¶¾ËØ·¢µÚÈý', '2008-04-15', '¶¾ËØ·ò¸¾'), (14, '0', '×·Ñ°ÂÌÖÞ', '2008-04-16', 'ÓÖ½â¾öÁËÈȵãÐÂÎÅÏÔʾÎÊÌâ!'), (15, '12', 'ËÕ´ò·öËç´ó', '2008-04-16', 'ËÕ´ò·¢Èöµ©'), (17, '0', 'ËÕ´ò·¢¸Â', '2008-04-16', ' µÄ'), (18, '1', 'f', '2008-04-16', 'f'), (19, '1', '1', '2008-04-16', '1'), (20, '11', '11', '2008-04-16', '11'), (21, '11', '12', '2008-04-16', '12'), (22, '4', 'niuwenjun', '2008-04-16', 'ÎÄ¿âÂÝË¿¶¤½¨·¿¿î'), (23, '4', '˹¶à·òÈö', '2008-04-16', 'ËÕ´ò·¢'), (24, '14', 'Äã', '2008-04-16', '²»'), (25, '4', '·¨¹ú', '2008-04-16', '·Ö¹û¸¹´ó'), (26, '4', '×·Ñ°ÂÌÖÞ', '2008-04-16', '²âÊÔ£¡£¡'), (27, '4', '×·Ñ°ÂÌÖÞ', '2008-04-16', '²âÊÔ£¡£¡'), (28, '4', '10', '2008-04-16', '10'), (29, '10', 'Å£Îľü', '2008-04-17', '´ó¼ÒºÃ°¡'), (30, '3', '³þÏس¤', '2008-04-17', 'ͬ־ÃÇÐÁ¿àÁË£¡'), (32, '1', '123', '2008-04-17', '123'), (33, '4', '123', '2008-04-17', '1233'), (34, '10', 'ÄÏСƼ', '2008-04-22', 'ÄãºÃ¡ò¡ò¡ò'), (36, '14', '×·Ñ°ÂÌÖÞ', '2008-04-23', '²âÊÔ¡ò¡ò¡ò¡ò'), (39, '14', 'µØ·½', '2008-04-23', '˹µÙ·Ò'); -- -------------------------------------------------------- -- -- 表的结构 `user_log` -- CREATE TABLE `user_log` ( `id` int(100) NOT NULL default '0', `name` varchar(10) NOT NULL default '', `password` varchar(10) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- 导出表中的数据 `user_log` -- INSERT INTO `user_log` (`id`, `name`, `password`) VALUES (0, 'niuwenjun', 'niuwenjun');

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值