[转]php初级教程(九)添加新闻内容程序的编写
现在开始编写增加新闻的表单了,大家可以注意到前面我们建立数据表的时候,新闻数据表有这样几栏:news_id news_title news_text news_date author ,这里news_id采用自增,在插入数据的时候,数据库会自动为其分配数值,所以不用管它,其他的分别是新闻标题,新闻内容,新闻添加日期和新闻作者。下面开始在admin/addnews.php中撰写表单。
tip:你可以先用其他软件把 addnews设计成你需要的界面,然后在空白的地方插入表单代码。
下面是表单的内容,注释在<!– 这里 –> ,html注释,主要是方便学习,实际使用中我们将html注释删除,以免占用不必要的带宽。
-
<form method="post" action="do.php">
-
<!-- 隐藏域,方便在do.php中判断想干什么 -->
-
<input type="hidden" id="action" name="action" value="addnews" /><br />
-
-
<label for="news_title">新闻标题</label>
-
<input name="news_title" id="news_title" size="60" type="text" /><br />
-
-
<label for="news_text">新闻内容</label>
-
<textarea type="text" name="news_text" id="news_text" rows="10" cols="50"></textarea><br />
-
-
<label for="news_date">发布时间</label>
-
<input name="news_date" id="news_date" size="60" type="text"
-
value="<?php echo date("Y-m-d H:i:s");?/>" /><br />
-
-
<label for="author">新闻作者</label>
-
<input name="author" id="author" size="60" type="text"
-
value="<?php //需要的时候这里将作者名字提出来;?/>" /><br /> -
<!-- value的数值可以用php echo 出来 -->
-
-
<input id="sbbt" value="提交" type="submit" />
-
<input id="resetbt" value="重置" type="reset" />
-
<!-- 提交和重置的位置你可以交换 -->
-
</form>
关于上面代码的几点说明:
- 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连接,所以我们先建立连接
-
-
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语句打印出来
-
-
die("插入数据失败,错误原因:".mysql_error() ); -
-
//调用js提示添加成功,并且返回到新闻添加页面
-
//这个时候你可以看看,怎么用php控制浏览器了
-
//其实php没有办法控制浏览器,问这样问题的人根本就还没有弄清楚
-
//php js html 服务器客户端这些关系
-
//所谓的php控制浏览器,php做弹出窗口,那都是php echo js,js来完成的
-
echo "<script lang='javascript'>\n";
-
echo " alert('添加新闻成功')\n";
-
echo "window.location='addnews.php';\n";
-
echo "</script>";
-
}
好了,现在开始运行!出错了??看看错误提示:插入数据失败,错误原因:No database selected,原来是没有选数据库,好了,在$conn = mysql_pconnect这行后面添加上:mysql_select_db(DB_NAME);,一切搞定。
由于显示的原因,所以我的代码都做了很多断行,因此,你在编写或者copy代码的时候,请注意整理。不过这样对于初学者也好,自己整理或者自己敲入代码始终是有利的!
另外,今后我们在使用数据库操作的时候根本不需要自己这样复杂的写sql语句,用PEAR的DB类就很简单的搞定,不过这是中级教程的任务!
还有,如果你不知道如何写sql,你可以在phpmyadmin中进行你需要的操作,然后看看他的sql语句是什么样的,就可以了,如下图所示。
下一章将对新闻的修改和删除作介绍!
引用地址:http://www.storyday.com/html/y2007/561_php-course-9.html