参考视频:https://www.bilibili.com/video/BV1Js411i74j?p=8

环境:phpstudy 2018        PHP 5.X     PHPmyadmin

目录结构 :

运行效果:

代码: 第一个文件,文件名为 item.php

<?php
class Message{
    var $name;
    var $time;
    var $contet;
    
    function __construct($n,$t,$c){
        $this->name = $n;
        $this->time = $t;
        $this->content = $c;
    }
    function show(){
        echo "Name :".$this->name."<br>";
        echo "Time :".$this->time."<br>";
        echo "Content :".$this->content."<br>";
        echo "=================================================="."<br>";
    }
}
//$m = new Message ("zhang","2020-3-6","xxxxxxxx");
//$m->show();
class DB{
    var $database = null ;
    function __construct (){
        $dbhost = "localhost";
        $account = "root";
        $password = "root";
        
        $this->database = mysql_connect($dbhost,$account,$password); //连接phpmyadmin
        if($this->database){
            echo "connection ";
        }else{
            echo "fail ";
        }
        $result = mysql_select_db("db_message2",$this->database); //连接成功之后,继续选择连接phpmyadmin中的具体哪个数据库
        if($result){
            echo "choose ";
        }else{
            echo "fail choose !!";
        }
    }
}
$a = new DB();
?>

第二个文件 文件名为 MessageBoard.php    代码如下

<?php
include_once ('item.php');
class MessageBoard extends DB{ //extends 是继承父类的数据库
    var $messages = array();

    function __construct(){
      parent::__construct(); //写这个的原因是,因为这里已经有了一个__construct了,还需要在导入上面那个__construct,所以说得声明一下
      $this->receivemessage();
      $this->loaddata();
      $this->showallmessage();
      $this->showform();
   }
    function receivemessage(){
    echo "1";    
    if(count($_POST) != 0){
        //$this->savedata($_POST['username'],data("Y-m-d h:i:s",time()),$_POST['content']);
        $this->savedata($_POST['username'],$_POST['time'],$_POST['content']);
    }
   }
    function savedata($u,$t,$c){
        /*echo "username :".$u."<br>";
        echo "time :".$t."<br>";
        echo "content :".$c."<br>";*/
        echo '<br>'.$_POST['username'];
        $sql = "INSERT INTO `db_message2`.`all_messages2` (`id`, `name`, `time`, `content`) VALUES (NULL, '".$u."', '".$t."', '".$c."');";
        mysql_query($sql);
        echo 'fffffffffffff';
    echo "2";
    }
    function loaddata(){
     echo "3";
     //$temp = new Message("zhang","2013-9-6","hahhahahaha");
     $sql = "SELECT * FROM `all_messages2` LIMIT 0, 30 ";
     $result = mysql_query($sql);
     while ($row = mysql_fetch_array($result)){ //这些都是最后在完善的,先写大的框架,也就是先写函数,最后在完善函数
         $temp = new Message( $row['name'], $row['time'],$row['content']);
         array_push($this->messages , $temp);
     }
    }
    function showallmessage(){
    echo "4";
    foreach($this->messages as $m ){ //这些都是最后在完善的,先写大的框架,也就是先写函数,最后在完善函数
        $m->show();
    }
}
    function showform(){
    echo "5";
    echo "<form action='' method='POST'>";
    echo "Name: "."<input type='text' name='username'>"."<br>";
    echo "time: "."<input type='text' name='time'>"; //这些都是最后在完善的,先写大的框架,也就是先写函数,最后在完善函数
    echo "Content: "."<input type='text' name='content'>";
    echo "<input type='submit'>";
    echo "</form>";
}
}
$mb = new MessageBoard();
?>

数据库结构

总结和记录常犯的几个错误:

1.可能C和PY的代码写习惯了,变量名前面老是忘记加$符号。

2.不要看PHP留言板这个项目很小,越小的项目,越能看出一个人的功底。这个项目虽然说很小,但是在写项目之前也要把思路捋清楚,最好是画个E-R图,不要怕浪费时间,一个项目真正浪费时间的并不是写代码的时候,而是写代码的思考,把E-R图写出来,照着E-R图写,不就清楚多了,养成好习惯,做大项目会受益的。

3.写代码的时候不要一个功能一个功能的写,先把整体的框架写出来,在慢慢完善每个功能!!!!

4.不得不说,PHP写后台确实容易些,归根结底就是发展时间久,函数啥的都很全面。

PHP留言板制作(MySQL+PHP)的更多相关文章

  1. javascript-DOM操作-留言板制作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. html的留言板制作(js)

    这次留言板运用到了最基础的localstorage的本地存储,展现的效果主要有: 1.编写留言2.留言前可以编辑自己的留言昵称.不足之处: 1.未能做出我喜欢的类似于网易的叠楼功能. 2.未能显示评论 ...

  3. php写留言板

    简单的PHP留言板制作 做基础的留言板功能  需要三张表: 员工表,留言表,好友表 首先造一个登入页面: <form action="drcl.php" method=&qu ...

  4. 利用Asp.net和Sql Server实现留言板功能

    本教程设及到:使用SQL Server查询分析器创建数据库:SQL查询语句常用的一些属性值:触发器创建和使用:存储过程的创建,ASP使用存储过程. 正文: 一.创建数据库: 创建一个feedback数 ...

  5. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

  6. php+mysql 最简单的留言板

    学完了记得动手操作. 測试地址(未过滤) <html> <body> <head><meta http-equiv="Content-Type&qu ...

  7. 2019-10-12,html+php+mysql简单留言板,作业

    php+mysql简易留言板,实现注册,登录,注销,查看留言,删除留言 1,index.html登录页面 代码: <!doctype html> <html> <head ...

  8. Django入门3 简单留言板项目案例及mysql驱动的安装配置

    新建jangostart项目 使用manager.py新建app即单独的应用 创建一个message应用 manage.py@djangostart > startapp message 如果a ...

  9. vue+egg.js+mysql一个前后端分离留言板项目

    一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...

随机推荐

  1. FL Studio进行侧链的三种方式(下)

    在上篇教程中我们了解了在FL Studio中进行侧链的第一种方式,今天我们就来继续带领大家了解进行侧链的另外两种方式. 如何使用 Fruity Peak Controller(果味峰值控制器)在FL ...

  2. 快来,Boom 3D广播功能还能这样用

    Boom 3D不仅为用户提供了包括3D立体音效.古典音乐音效在内的多种音效增强功能,而且还为用户提供了广播功能.该广播功能不仅涵盖了国内广播节目,而且还涵盖了国际广播节目. Boom 3D的广播功能还 ...

  3. 如何用EasyRecovery恢复U盘乱码的文件

    大多数用户在遇到U盘文件乱码的情况时,都显得有点手足无措,甚至会删除乱码文件,这样就导致了乱码文件数据的丢失.针对这种情况,我们应该怎么正确处理呢? 图1:U盘乱码 U盘文件乱码原因: 想要解决问题, ...

  4. jQuery 第五章 实例方法 详解内置队列queue() dequeue() 方法

    .queue() .dequeue() .clearQueue() ------------------------------------------------------------------ ...

  5. python应用(3):启用集成开发工具pycharm

    之前写了个python程序给自己用,写代码时用的是macvim(vim的一种),macvim是个编辑工具,由于我已经设置过对python等各种语言的支持特性,所以什么缩进.对齐.高亮之类的表现都有,写 ...

  6. CSP.2020

    自闭jpg. 就说说 PJ 吧. TG炸的原因主要是因为PJ的炸裂以及T1--所以就直接分析根本原因了. # 参考补题链接 # # 推荐博客链接 # 0x00 考前一天晚上. 在LH巨佬家吃了饭,前往 ...

  7. redis-cli 持久化,复制,哨兵,事务,流水线

    一.持久化: 快照文件RDB 保存"开始"创建新快照一刻的内存快照,创建过程的内存变化不会被记录 创建快照的办法有几种 1.客户端可以通过想Redis发送BGSAVE来创建一个快照 ...

  8. PyQt(Python+Qt)学习随笔:QTreeView的标题表头header相关属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Qt Designer中,对于树型视图QTreeView,在属性在下面有专门一栏列出了跟 ...

  9. 问题:PyCharm调试方法smart step into的用途

    smart step into为智能单步跟踪,当一行代码中有多个函数,想进入其中一个函数调测其他函数不进入调测时,使用该功能可以让调试人员选择进入的函数.如: 就可以选择需要调试进入的函数而其他两个函 ...

  10. 团队作业6(B)-事后诸葛亮分析

    白给团队e-shop项目Postmortem结果 (整理:政B) 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚? 答:主要是为商户和消费者提供一个网上交易商品的平台,定义明确. 2.我们 ...