[转]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']);

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

 

转载于:https://www.cnblogs.com/sishierfei/archive/2009/11/25/1610436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值