似是而非

导航

[转]php初级教程(十)新闻的列表和删除

 现在我们开始介绍新闻的列表和删除了。

新建立一个文件listnews.php,内容如下:

  1. < ?php
  2. require_once('../inc/config.php');
  3. //包含配置文件
  4. ?>
  5. <html>
  6. <head></head>
  7. <title>新闻管理</title>
  8. <body>
  9. <div class="newstitle"></div>
  10. <div class="newslist">
  11. < ?php
  12. //这里显示新闻列表
  13. $page = $_GET['page'];
  14.  
  15. if( $page < 1) $page =1;
  16.  
  17. //获取当前页面数
  18. $per = 10;
  19. //每页显示数量
  20. $begin = ($page - 1) * $per;
  21.  
  22. $pre = $page -1;
  23. //上一页
  24. $next = $page + 1;
  25. //下一页
  26. //反正所有的操作都会用到mysql连接,所以我们先建立连接
  27. $conn = mysql_pconnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)
  28. or die('连接数据库失败');
  29. mysql_select_db(DB_NAME);
  30.  
  31. $sql = "SELECT * FROM ".NEWS_BASE." WHERE 1 ORDER BY news_id limit ".$begin.",".$per;
  32.  
  33. $res = mysql_query($sql) or die(mysql_error());
  34. //查询数据库
  35.  
  36. echo "<table border='1'><tr>";
  37. echo "<td>新闻时间</td><td>新闻标题</td>";
  38. echo "<td>操作</td></tr><tr>\n";
  39.  
  40. while( $obj = mysql_fetch_object($res)){
  41. //循环取出数据,关于mysql的函数请参考php手册
  42. //然后循环表格
  43. echo "</tr><tr>";
  44. echo "<td>".$obj->news_date."</td>";
  45. echo "<td>".$obj->news_title."</td>";
  46. echo "<td><input type='button' onClick='mod(".$obj-/>news_id.")' value='修改' />";
  47. echo "<input type='button' value='删除' onClick='del(".$obj-/>news_id.")' /></td>";
  48. echo "</tr>";
  49. //上面的按钮会触发javascript事件
  50. //所以下面我将顺便写一下js
  51. //让大家熟悉一下
  52. }
  53. echo "";
  54. ?>
  55. <a href="?page=<?php echo $pre;?>">上页</a>
  56. <a href="?page=<?php echo $next;?>">下页</a>
  57. </div>
  58. <script language="javascript">
  59. function mod(id){
  60. //修改的函数
  61. //我们将这个带到editnews.php?id=id上去
  62. window.location = "editnews.php?id="+id+"&page=< ?php echo $page;?>";
  63. }
  64. function del(id){
  65. //修改的函数
  66. //我们将这个带到do.php?id=id&del=yes上去
  67. window.location = "do.php?id="+id + "&del=yes&page=< ?php echo $page;?>";
  68. }
  69. </script>
  70. </body>
  71. </html>

现在开始便写如何删除的页面,打开do.php,添加下面的代码

  1. if( $_GET['del'] == 'yes'){
  2. $sql = "DELETE FROM ".NEWS_BASE." WHERE news_id='".$_GET['id']."'";
  3. mysql_query($sql,$conn)
  4. or die("数据操作失败,错误原因:".mysql_error() );
  5. header("location:listnews.php?page=".$_GET['page']);
  6. //删除之后返回到原来的那个页面
  7. }

现在开始编写editnews.php了,先从数据库中取出数据,然后用sql update内容即可,代码如下:

  1. < ?php
  2. require_once('../inc/config.php');
  3. $conn = mysql_pconnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)
  4. or die('连接数据库失败');
  5. mysql_select_db(DB_NAME);
  6. $sql = "SELECT * FROM ".NEWS_BASE." WHERE news_id='".$_GET['id']."'";
  7. $res = mysql_query($sql,$conn)
  8. or die("数据操作失败,错误原因:".mysql_error() );
  9. $obj = mysql_fetch_object($res);
  10. ?>
  11. <form method="post" action="do.php">
  12. <input type="hidden" id="action" name="action" value="modnews" />
  13. <br />
  14. <input type="hidden" name="news_id" value="<?php echo $obj-/>news_id?>" />
  15. <input type="hidden" name="page" value="<?php echo $_GET['page']?/>" />
  16. <!-- hidden隐藏域的作用就不用介绍了吧,上次介绍过哈 -->
  17. <label for="news_title">新闻标题</label>
  18. <input name="news_title" id="news_title"
  19. value="<?php echo $obj-/>news_title;?>" size="60" type="text" />
  20. <br />
  21. <label for="news_text">新闻内容</label>
  22. <textarea type="text" name="news_text" id="news_text" rows="10" cols="50">
  23. < ?php echo $obj->news_text; ?>
  24. </textarea>
  25. <br />
  26. <label for="author">新闻作者</label>
  27. <input name="author" id="author" size="60" type="text"
  28. value="<?php echo $obj-/>author;?>" /><br />
  29. <label for="news_date">发布时间</label>
  30. <input name="news_date" id="news_date" size="60" type="text"
  31. value="<?php echo $obj-/>news_date;?>" /><br />
  32. <input id="sbbt" value="提交" type="submit" />
  33. <input id="resetbt" value="重置" type="reset" />
  34. </form>

然后我们要在对应的do.php中添加相应的处理操作,代码如下

  1. if( "modnews" == $action ){
  2. //如果是修改新闻,则在此处进行处理
  3. $sql = "UPDATE ".NEWS_BASE." set
  4. news_title='".$_POST['news_title']."',
  5. news_text='".$_POST['news_text']."',
  6. news_date='".$_POST['news_date']."',
  7. author='".$_POST['author']."' WHERE news_id=".$_POST['news_id']."";
  8. mysql_query($sql,$conn) or
  9. die("插入数据失败,错误原因:".mysql_error() );
  10. header("location:listnews.php?page=".$_POST['page']);
  11. }

当然,我们在实际的处理中,必须对用户的输入进行过滤,防止恶意的输入,比如用这样的函数过滤掉html标签$a = htmlspecialchars($_POST[’a']);

好了,今天就介绍到这里,一个基本的新闻管理系统基本完成了。

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

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