首页 | PHP资讯 | 技术专栏 | 资源共享 | PHP培训 | PHP职场 | 图书 | PHP ON WIN | PHP圈子
返回列表 回复 发帖

[最适合菜鸟]刚学PHP,做的最粗糙最简单的留言本[全程思考过程]

[最适合菜鸟]刚学PHP,做的最粗糙最简单的留言本[全程思考过程]

呵呵,学习PHP的时间,看我的注册时间吧.
不过,之前有过一点C++的基础,所以语法还是挺容易看懂的.

呵呵,看完的新手们可以接着看   http://www.phpchina.com/bbs/thread-32482-1-1.html
是在这篇帖子的基础上扩展的,我准备以此为基础,不停的完善这个程序,分享学习过程

但是就是看 MYSQL语法啊,对于SQL,我一点概念都没有,后来找了很多资料,才终于知道了基本概念
      就是,数据库->表->字段->行; (呵呵,也许有的人认为很简单,但是这花了我两天的时间才领悟的,本人比较笨,呵呵)
然后,知道了数据库的概念之后,我就想应该可以弄个留言本玩玩了吧.
      但是,由于除了写echo之外,从来没有写过PHP代码,所以,基本上这个粗糙的留言本都是翻资料,在论坛找资料所得

如果是高手的话,就不用看了吧,因为这确实比较简单的,
      如果你还是刚入门,就可以看看,因为我把思路都放在注释里面了.

下面,就看我这个最最简单的留言本吧.呵呵

    首先,是数据库的结构,既然是最粗糙的留言本,就只需要这几个字段:
                  

  • ID(我看到别人一般都有,也就加了,是自动增长的)
  • name 就是留言者的名称
  • content 留言内容
  • ltime 留言的时间

           其中,name和content是需要留言的人自己写的,其他是自动生成的.
     
现在我把建立表的语句放上来:
  1. create table if not exists my_liuyan  #这里是建立一个表
  2. ( lid int not null auto_increment primary key,  #建立一个lid,自动增加,主键
  3.   name varchar(30) not null,    #建立了一个名字
  4.   content blob not null,          #建立了内容字段,类型为 blob ,是查资料的,虽然对blob还不了解
  5.   ltime varchar(30) not null      #建立了存贮发言时间的字段,本来类型是定义成 datetime 的,但是我要存贮的是07年8月4日04:05:36
  6.                                            #这种形式的,所以就把 datatime 改成了 varchar(30) 了
  7. );
复制代码
一开始写这个SQL语句的时候,都犯了很多错误,比如 create ,我就写成了 creat ,呵呵,毕竟一开始写,我知道这是一个过程.
然后把上面这段放在 phpmyadmin 里面运行,就建立这个表(当然,在此之前弄错了好多);

    然后,我就开始写全局变量的文件:

首先,是config.inc 这个配置文件代码:
  1. <?php
  2. //全局变量
  3. $DBHOST = 'localhost';   //数据库服务器地址,我是在本地的
  4. $DBUSER = 'root';         //数据库用户
  5. $DBPWD = ' ';    //数据库密码,我这里就不写了,呵呵
  6. $DBNAME = 'myliuyan';   //这是我在phpmyadmin里面建立的一个数据库,里面来放我刚刚建立的一个表

  7. ?>
复制代码
然后,就是开始写 index.htm 这个静态页面了.也贴出代码:(这里我只把 body这个标签里面的代码贴出来)
  1. <body>
  2. <form action="jieshou.php" method="POST"> <!--这里表示接受这个表单数据的文件地址:jieshou.php,方法是post--!>
  3.         姓名:<input type="text" name="user_name"/><br/> <!--定义接受姓名的变量为user_name--!>
  4.         信息内容:<br/>
  5.         <textarea name="user_content" cols="40" rows="8"></textarea>  <!--定义接受内容的变量为user_content--!>
  6.         <br/>
  7.         <input type="submit" name="btn_ok" value="提交"/>  <!--定义一个提交按钮,这里我定义了一个变量,但是后面没有用,因为我看资料,有的资料定义了这个变量,我想是以后有用的吧--!>
  8. </form>
  9. </body>
复制代码
呵呵,是不是很简陋的页面啊,先不管,看看能不能成功再说.

然后,要写 jieshou.php 这个文件了,这个文件的任务就是把留言的信息提交到数据库中去,贴代码:
  1. <?php
  2. //使用接受一下参数,看看对不对(这是一开始还没有链接数据库的时候,我做的测试)
  3. $user_name = $_POST['user_name'];                         //得到用户名
  4. //echo $user_name; //这是刚开始我做的看能不能得到在index.htm中的数据写的语句
  5. $user_content = $_POST['user_content'];                //得到留言内容
  6.                  /////////////////////////////////////////////
  7.                 //这里,我要说一下上面两个语句,也就是我得到index.htm中的语句
  8.                //之前,资料中是用 $HTTP_GET_VARS得到数据的
  9.               // 然而,我看到很多人用 $_POST,所以,在论坛找到了资料
  10.              //一个是PHP4.3之前的用法,一个是4.3之后的版本
  11.             ///////////////////////////////////////////////////////////////////////////

  12. $creat_time = date(y.'年'.m.'月'.d.'日'.h.':'.i.':'.s); //得到提交留言日期
  13.           ////////// 同时,上面这个函数 datedate(y.'年'.m.'月'.d.'日'.h.':'.i.':'.s) 也是查资料的,得到的是 07年08月04日12:03:36这样的形式.

  14. //链接数据库
  15. include_once('config.inc');                                                           //引入数据库参数 ,把刚刚那个文件的变量引入进来了.

  16. $con = mysql_connect($DBHOST,$DBUSER,$DBPWD);                   //这个函数是链接到数据库的函数

  17.                //if($content) echo '数据库链接成功';                           //这个也是测试数据库链接的情况

  18. mysql_select_db($DBNAME,$con);                                              //这个是选择数据库,前几次因为忘了选择数据库,所以总是插入失败
  19.         
  20.               //if($close) echo '数据库关闭成功';                                //同样,这个也是测试数据库的关闭成功情况,后来也是忘了把这句注释                        

  21.                                                                                              //掉,弄得插入失败

  22. $query = "INSERT INTO my_liuyan (name,content,ltime)";
  23. $query.= "VALUES('$user_name','$user_content','$creat_time')";    //这两行是数据库查询语句,不过还没有实行,

  24. echo $query;                                                                            //输出查询语句,看看有没有语法错误

  25. $reslt = mysql_query($query);                                                    //这个函数是查询函数,这一句才是插入数据的命令
  26.         if($reslt) echo '数据库插入成功';                                          //看看数据插入成功否

  27. $close = mysql_close($con);                                                        //关闭数据库
  28. ?>
复制代码
然后,测试后,成功的写入信息到数据库了,但是,我在phpmyadmin中看BLOB数据的时候,看不到,请问怎么看BLOB数据?

然后,就是查看留言内容的页面了,其实就是一个查询数据库的页面,代码贴上:
  1. <?php
  2. //////////////////测试查询数据库
  3. include_once('config.inc');   //引入文件
  4. $con = mysql_connect($DBHOST,$DBUSER,$DBPWD);        //链接数据库

  5. mysql_select_db($DBNAME,$con);                        //选择数据库

  6. $query = "select * from my_liuyan";                 //设置查询的语句

  7. $reslt = mysql_query($query);                     //实施查询命令
  8. //if($query) echo '查询成功<br/>';//测试查询成功否            

  9. while ($row = mysql_fetch_row($reslt))        //把结果返回到 $row 数组中
  10.          {
  11.                 echo 'ID: '.$row[0].'<br/>';
  12.                 echo 'name:  '.$row[1].'<br/>  ';
  13.                 echo 'content:  '.$row[2].' <br/> ';
  14.                 echo 'time:  '.$row[3].' <br/> ';
  15.                 echo '<hr/>';
  16.         }                                                  //这段while语句就 把查询到的语句输出出来

  17. mysql_close($con);        //关闭数据库

  18. ?>
复制代码
好了,这就是昨天晚上花了3个小时做出来的,

其中,自己范了很多错误,是学到在看书时没有意识到的错误.

虽然程序很简陋,也没有设计到分页查询,但是,这毕竟是自己的第一个有功能的程序了

呵呵,所以就厚着脸皮发出来,

然后自己再把程序不断完善,在这个过程学到更多的知识和技巧.

对于高手来说,这个应该是最基本的代码了,所以,如果大家有什么建议的话,也可以说出来,

帮助我们这些菜鸟成长吧.:loveliness:

顺便问一下:加入字段(也就是列),应该用什么语句?

[ 本帖最后由 njuptsoz 于 2007-8-10 17:05 编辑 ]

支持原创者
专门收集PHP精华文章和代码
PHP学习

TOP

就个留言 没 有删除 留言啊 发表回复的内容么 ?
期待完善

[ 本帖最后由 wrs_1983 于 2007-9-12 10:06 编辑 ]
享受PHP

TOP

继续努力:victory:

TOP

支持
273二手车


福州PHP策进会(PEA)。加QQ群25904432 11189041

TOP

我晕……也太简单了吧……

TOP

支持:victory:
php mysql apache 学习中..

TOP

支持原创!
btw:那个按钮的名字是以后做判断用的,比如你发表留言以后的页面,假如别人直接在浏览器输入的话可能会有bug,可以加一个if($_POST[submit])判断下

TOP

传递条件不是用$_GET吗
<form name='form1'  action='add.php?action=submit' >
然后 add.php
<?
if ($_GET('action')=='submit') {


}
?>

我试 过了如果用 $_POST('action')=='submit'  好象不能获取条件!

   如果哪位懂点的,可以告诉我具体的原因吗?

TOP

楼上的,你的action这样写的话当然是用get,而且你的get也写错了,$_GET['action'],是方括号,不是圆括号……

TOP

返回列表