似是而非

导航

[转]php初级教程(九)添加新闻内容程序的编写

 昨天有个网友说我的教程很简单,学习起来很容易,看来我想要的目的达到了,再次给了我续写教程的动力,于是就提前续写吧!

现在开始编写增加新闻的表单了,大家可以注意到前面我们建立数据表的时候,新闻数据表有这样几栏:news_id news_title news_text news_date author ,这里news_id采用自增,在插入数据的时候,数据库会自动为其分配数值,所以不用管它,其他的分别是新闻标题,新闻内容,新闻添加日期和新闻作者。下面开始在admin/addnews.php中撰写表单。

tip:你可以先用其他软件把 addnews设计成你需要的界面,然后在空白的地方插入表单代码。

下面是表单的内容,注释在<!– 这里 –> ,html注释,主要是方便学习,实际使用中我们将html注释删除,以免占用不必要的带宽。

  1. <form method="post" action="do.php">
  2. <!-- 隐藏域,方便在do.php中判断想干什么 -->
  3. <input type="hidden" id="action" name="action" value="addnews" /><br />
  4.  
  5. <label for="news_title">新闻标题</label>
  6. <input name="news_title" id="news_title" size="60" type="text" /><br />
  7.  
  8. <label for="news_text">新闻内容</label>
  9. <textarea type="text" name="news_text" id="news_text" rows="10" cols="50"></textarea><br />
  10.  
  11. <label for="news_date">发布时间</label>
  12. <input name="news_date" id="news_date" size="60" type="text"
  13. value="<?php echo date("Y-m-d H:i:s");?/>" /><br />
  14.  
  15. <label for="author">新闻作者</label>
  16. <input name="author" id="author" size="60" type="text"
  17.  value="<?php //需要的时候这里将作者名字提出来;?/>" /><br />
  18. <!-- value的数值可以用php echo 出来 -->
  19.  
  20. <input id="sbbt" value="提交" type="submit" />
  21. <input id="resetbt" value="重置" type="reset" />
  22. <!-- 提交和重置的位置你可以交换 -->
  23.  </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内容如下:

  1. require_once('../inc/config.php');//包含配置文件
  2.  $action = $_POST['action'];
  3. //根据提交过来的表单获取隐藏域的内容
  4. //根据不同的值处理不同的任务
  5. //反正所有的操作都会用到mysql连接,所以我们先建立连接
  6. $conn = mysql_pconnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)
  7. or die('连接数据库失败');
  8.  
  9. if( "addnews" == $action ){
  10. //如果是添加新闻,则在此处进行处理
  11. $sql = "insert into ".NEWS_BASE." values
  12. ('',
  13. '".$_POST['news_title']."',
  14. '".$_POST['news_text']."',
  15. '".$_POST['news_date']."',
  16. '".$_POST['author']."')";
  17. //上面是插入数据的sql语句,不知道那些单引号和双引号你看明白没有?
  18. //上面用了严格的字符串连接,介绍一个方法吧?
  19. //如果你想字符串是这样 values '$test1' ,'$test2';
  20. //如果用连接的话 values '".."' 在''之间输入".$这里是变量."即可
  21. //如果还是不明白,好好去看看字符串的连接
  22. //echo $sql; 调试的时候请用echo将你的sql语句打印出来
  23.  
  24. mysql_query($sql,$conn) or
  25.  die("插入数据失败,错误原因:".mysql_error() );
  26.  
  27. //调用js提示添加成功,并且返回到新闻添加页面
  28. //这个时候你可以看看,怎么用php控制浏览器了
  29. //其实php没有办法控制浏览器,问这样问题的人根本就还没有弄清楚
  30. //php js html 服务器客户端这些关系
  31. //所谓的php控制浏览器,php做弹出窗口,那都是php echo js,js来完成的
  32. echo "<script lang='javascript'>\n";
  33. echo " alert('添加新闻成功')\n";
  34. echo "window.location='addnews.php';\n";
  35. echo "</script>";
  36. }

好了,现在开始运行!出错了??看看错误提示:插入数据失败,错误原因:No database selected,原来是没有选数据库,好了,在$conn = mysql_pconnect这行后面添加上:mysql_select_db(DB_NAME);,一切搞定。

由于显示的原因,所以我的代码都做了很多断行,因此,你在编写或者copy代码的时候,请注意整理。不过这样对于初学者也好,自己整理或者自己敲入代码始终是有利的!

另外,今后我们在使用数据库操作的时候根本不需要自己这样复杂的写sql语句,用PEAR的DB类就很简单的搞定,不过这是中级教程的任务!

还有,如果你不知道如何写sql,你可以在phpmyadmin中进行你需要的操作,然后看看他的sql语句是什么样的,就可以了,如下图所示。

sql.jpg

下一章将对新闻的修改和删除作介绍!

 

引用地址:http://www.storyday.com/html/y2007/561_php-course-9.html

posted on 2009-11-25 14:14  似是而非  阅读(744)  评论(0编辑  收藏  举报