zoukankan      html  css  js  c++  java
  • [转]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

  • 相关阅读:
    Linux上Blogilo连接博客园账户
    字符串模式匹配KMP算法
    回溯法之n皇后问题
    回溯法之k着色问题
    动态规划之最短路径(Floyd算法)
    动态规划之最长公共子序列
    动态规划之矩阵链乘
    New home
    POJ 2478:Farey Sequence
    Codeforces Round #416 (Div. 2)
  • 原文地址:https://www.cnblogs.com/sishierfei/p/1610433.html
Copyright © 2011-2022 走看看