昨天有个网友说我的教程很简单,学习起来很容易,看来我想要的目的达到了,再次给了我续写教程的动力,于是就提前续写吧!
现在开始编写增加新闻的表单了,大家可以注意到前面我们建立数据表的时候,新闻数据表有这样几栏:news_id news_title news_text news_date author ,这里news_id采用自增,在插入数据的时候,数据库会自动为其分配数值,所以不用管它,其他的分别是新闻标题,新闻内容,新闻添加日期和新闻作者。下面开始在admin/addnews.php中撰写表单。
tip:你可以先用其他软件把 addnews设计成你需要的界面,然后在空白的地方插入表单代码。
下面是表单的内容,注释在<!– 这里 –> ,html注释,主要是方便学习,实际使用中我们将html注释删除,以免占用不必要的带宽。
关于上面代码的几点说明:
- action=”do.php”表示该表单将会提交给do.php来处理,我们例子中所有的处理都在do.php中。
- type=”hidden”是一个隐藏域,用户是看不到的,这个仅仅是用来作为变量的传递,我们将在do.php中判断action这个变量,如果是addnews就执行对应的操作
- lable 标签里面那个 for表示的意义是该标签对应的那个框,有了这个之后,如果你点击lable中的文字,光标就会在对应的框中闪烁(嘿嘿,这个我也是最近研究wordpress代码中发现的),所以有些小窍门是自己不断积累的,因为我也没有系统的学习过html,都是看间网页上有好玩的,就查看他的源代码。
- 标签中的name=”myname”这个myname会在php中被获取,如果还有不明白,请看前面的教程,而id=后面这个变量主要用来在html文件中,方便js调用,请养成这个好习惯
- 其他有数字的地方,如果你还不明白,你就改变数值,然后查看网页,看看有什么变化就知道了,这个也是一个好习惯,至少比你在网络上叙照答案要来得快
下面开始编写do.php中的内容,请在addnews.php的同一个目录下建立一个文件:do.php内容如下:
require_once('../inc/config.php');//包含配置文件
$action = $_POST['action'];
//根据提交过来的表单获取隐藏域的内容
//根据不同的值处理不同的任务
//反正所有的操作都会用到mysql连接,所以我们先建立连接
$conn = mysql_pconnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)
or die('连接数据库失败');
if( "addnews" == $action ){
//如果是添加新闻,则在此处进行处理
$sql = "insert into ".NEWS_BASE." values
('',
'".$_POST['news_title']."',
'".$_POST['news_text']."',
'".$_POST['news_date']."',
'".$_POST['author']."')";
//上面是插入数据的sql语句,不知道那些单引号和双引号你看明白没有?
//上面用了严格的字符串连接,介绍一个方法吧?
//如果你想字符串是这样 values '$test1' ,'$test2';
//如果用连接的话 values '".."' 在''之间输入".$这里是变量."即可
//如果还是不明白,好好去看看字符串的连接
//echo $sql; 调试的时候请用echo将你的sql语句打印出来
mysql_query($sql,$conn) or
die("插入数据失败,错误原因:".mysql_error() );
//调用js提示添加成功,并且返回到新闻添加页面
//这个时候你可以看看,怎么用php控制浏览器了
//其实php没有办法控制浏览器,问这样问题的人根本就还没有弄清楚
//php js html 服务器客户端这些关系
//所谓的php控制浏览器,php做弹出窗口,那都是php echo js,js来完成的
echo "";
}
好了,现在开始运行!出错了??看看错误提示:插入数据失败,错误原因:No database selected,原来是没有选数据库,好了,在$conn = mysql_pconnect这行后面添加上:mysql_select_db(DB_NAME);,一切搞定。
由于显示的原因,所以我的代码都做了很多断行,因此,你在编写或者copy代码的时候,请注意整理。不过这样对于初学者也好,自己整理或者自己敲入代码始终是有利的!
另外,今后我们在使用数据库操作的时候根本不需要自己这样复杂的写sql语句,用PEAR的DB类就很简单的搞定,不过这是中级教程的任务!
还有,如果你不知道如何写sql,你可以在phpmyadmin中进行你需要的操作,然后看看他的sql语句是什么样的,就可以了,如下图所示。

下一章将对新闻的修改和删除作介绍!
该日志未加标签
太谢谢你了,恩师啊!
拜你为师.
师傅,请受徒弟一拜.