PHP留言板制作(MySQL+PHP)
参考视频: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)的更多相关文章
- javascript-DOM操作-留言板制作
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- html的留言板制作(js)
这次留言板运用到了最基础的localstorage的本地存储,展现的效果主要有: 1.编写留言2.留言前可以编辑自己的留言昵称.不足之处: 1.未能做出我喜欢的类似于网易的叠楼功能. 2.未能显示评论 ...
- php写留言板
简单的PHP留言板制作 做基础的留言板功能 需要三张表: 员工表,留言表,好友表 首先造一个登入页面: <form action="drcl.php" method=&qu ...
- 利用Asp.net和Sql Server实现留言板功能
本教程设及到:使用SQL Server查询分析器创建数据库:SQL查询语句常用的一些属性值:触发器创建和使用:存储过程的创建,ASP使用存储过程. 正文: 一.创建数据库: 创建一个feedback数 ...
- Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql
在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...
- php+mysql 最简单的留言板
学完了记得动手操作. 測试地址(未过滤) <html> <body> <head><meta http-equiv="Content-Type&qu ...
- 2019-10-12,html+php+mysql简单留言板,作业
php+mysql简易留言板,实现注册,登录,注销,查看留言,删除留言 1,index.html登录页面 代码: <!doctype html> <html> <head ...
- Django入门3 简单留言板项目案例及mysql驱动的安装配置
新建jangostart项目 使用manager.py新建app即单独的应用 创建一个message应用 manage.py@djangostart > startapp message 如果a ...
- vue+egg.js+mysql一个前后端分离留言板项目
一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...
随机推荐
- 关于GoldWave为Vegas制作音频交叉淡化特效的教程分享
在Vegas里对音频交叉淡化的处理,是通过将两段音频交叠.调整交叠部分的音量.选取交叉淡化类型这三步来实现的,许多步骤是在音频轨道拖动音量线来实现的,操作上不够灵敏精细.其实,单就音频的交叉淡化处理, ...
- 清理工具CleanMyMac如何帮助用户清空DNS缓存
什么是DNS缓存?这个缓存有什么危害?相信大家平时使用浏览器时,有时候会遇到一个很奇怪的问题,就是Mac打开许多网站如百度网站,都是可以访问的,但是在打开某个特定网站时,却发现浏览器提示检测不到网络连 ...
- css3系列之伪元素选择器
Pseudo-Element Selectors(伪元素选择器) E::placeholder E::selection E::placeholder 这个选择器是选啥的呢, 是选 input 里面的 ...
- 解决Jenkins可安装界面是空白的小技巧
打开后这里面最底下有个[升级站点],把其中的链接改成http的就好了,http://updates.jenkins.io/update-center.json. 然后在服务列表中关闭jenkins,再 ...
- spring中的事务传播机制
1.事务的实现思想 在spring中要想某个方法具有事务,只要在方法前加一个@Transactional注解.然后spring就会利用aop思想,在这个方法执行前开启事务, 在方法执行后选择提交事务或 ...
- leetcode151. 翻转字符串里的单词
给定一个字符串,逐个翻转字符串中的每个单词. 示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: & ...
- JVM(二)-内存区域之线程私有区
概述: 对于从事C.C++开发的程序员来说,在内存管理领域,他们既是拥有最高权力的"皇帝",又是从事最基础工作的劳动人民--既拥有每个对象的"所有权", 又担负 ...
- P5851 [USACO19DEC]Greedy Pie Eaters P
如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,那么我们可以考虑派的情况. 套路地令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重. \[ ...
- CentOS6.5上增加中文字体库,确保前端WEB可以正常显示
1 下载字体 可以在网上下载,也可以在 windows 目录下(C:\Windows\Fonts)找到对应字体,这里是从另一套系统上 copy simsun.ttf 文件. 2 查看当前系统中已安装的 ...
- JZOJ2020年8月7日提高组反思
JZOJ2020年8月7日提高组反思 T1 暴力枚举 枚举起点和\(p\) 然后就 过了?! 根据本人不严谨的推算 时间复杂度\(O(\dfrac{n^7}{4})\) 数据太水就过去了QAQ T2 ...