php+mysql留言板(模仿qq空间留言板)

   这是一个模仿QQ空间里面的留言板,所写的一个简单留言板。运用的知识有PHP,mysql,还有一些简单的编程思想,这个里面没有管理员的功能。希望和大家一起交流一下。

首先建立一个Message的文件,里面有一个Public文件夹,用来存放CSS,JS,和Image。再就是核心的PHP文件。

一.public文件夹里面的CSS文件,JS文件。

1.message.css文件代码如下:

/*
留言板的css样式设计
*/
/* 
    Created on : 2015-8-20, 11:04:46
    Author     : 鑫鑫
*/

.div1{
    margin: 10px 200px;
    border:2px solid orange;
    background: palegoldenrod;
}
.div2{
   background-image:url("../public/51.png"); 
   height: 250px;
}
.div3{
    background: palegoldenrod;
    height: 60px;
    border-top:1px solid orange;
    border-bottom:1px solid orange;
}
.div4{
    background: palegoldenrod;
    height: 100px;
    border-bottom:1px solid orange;
}
.div5{
    height: 1075px;
}
.div6{
    background: palegoldenrod;
    height: 40px;
}
.div7{
    border-top:0.3px solid olive;
    border-bottom:0.3px solid olive;
    height: 100px;
}
img{
   height: 200px;
}
span{
    font-size: 18px;
    font-weight: 700px;
}
#span1{
       text-align: center;
}
#span2{
       border:1px solid orange;
}
#span3{
        font-size: 15px;
        font-weight: 500px;
}
2.JS文件代码如下:

/* 
 留言板js文件
 */
function dte() {
    if (window.confirm("删除操作不可恢复,您确认继续操作?") == true) {
        return true;
    } else {
        return false;
    }

}

二.login.php留言板首页面的显示的,代码如下:



    
        Message board
        
        
        
    
    
        add($info);
        }
        if (!empty($_GETT['num'])) {
            $info = $_GET['num'];
            $user = new handle();
            $user->delete($info);
        }
        ?>
        
主人寄语
好友印象
show_impression(); ?>
发表留言
留言 show_page(); ?>


 
  

三.sql_server.class.php封装一个对数据库处理的类。核心处理函数是对数据进行分页处理,代码如下:

mysqli = new mysqli($this->host, $this->user, $this->password, $this->db);
        if ($this->mysqli->connect_error) {
            die("连接失败" . $this->mysqli->conecct_error);
        }
    }

//设置编码
    function set_character() {
        $this->mysqli->query("set names utf8");
    }

//执行sql语句
    function execute_dql($sql) {
        $res = $this->mysqli->query($sql) or
                die("操作失败" . $this->mysqli->error);
        return $res;
    }

    //返回一个数组
    function execute_dqls($sql) {
        $arr = array();
        $res = $this->mysqli->query($sql) or
                die("操作失败" . $this->mysqli->error);
        $i = 0;
        while ($row = $res->fetch_row()) {
            $arr[$i++] = $row;
        }
        $res->free();
        return $arr;
    }

//分页操作函数
    function show_page() {
        //创建一个handle类对象
        $handle = new handle();
        $sql = "select * from m_liuyan";
        $res = $this->mysqli->query($sql) or
                die("操作失败" . $this->mysqli->error);
        $count = $res->num_rows; //总的留言数
        $page_size = 10; //每页显示的留言数
        $page_count = ceil($count / $page_size); //总的页数
        $page_len = 3; //显示的总的页码数
        $init = 1;
        $max_p = $page_count; //最大的页码
        $pages = $page_count; //总页数
        $space = '                                                                                                                                                    ';
        //判断当前的页码
        if (empty($_GET['page']) || $_GET['page'] < 0) {
            $page = 1;
        } else {
            $page = $_GET['page'];
        }
        //对最后一页和其他页做两个不同情况来处理
        if ($page == $pages) {
            $offset = 0;
            $max_offset = $count - ($pages - 1) * $page_size;
            $sql1 = "select * from m_liuyan limit $offset,$max_offset";
        } elseif ($page == 1) {
            $offset = $count - $page_size; //每一页开始的留言坐标
            $sql1 = "select * from m_liuyan limit $offset,$page_size"; //每一页留言的开始坐标与末坐标的控制 
        } else {
            $offset = $page_size * ($pages - $page) - 1; //每一页开始的留言坐标
            $sql1 = "select * from m_liuyan limit $offset,$page_size"; //每一页留言的开始坐标与末坐标的控制
        }
        $result = $this->mysqli->query($sql1) or
                die("操作失败" . $this->mysqli->error);
        $i = 0;
        //把查询的结果都放在一数组中去,然后再次获取即可
        while ($row = $result->fetch_row()) {
            $arr[$i++] = $row; //把获取的记录存放在$arr数组中去
        }
        $res->free();
        $num = count($arr);
        for ($i = $num - 1; $i >= 0; $i--) {
            $nums = rand(0, 4);
            switch ($nums) {
                case 0:$color = 'red';
                    break;
                case 1:$color = 'blue';
                    break;
                case 2:$color = 'black';
                    break;
                case 3:$color = 'green';
                    break;
                case 4:$color = 'purple';
                    break;
                default:
                    break;
            }
            echo '
'; $num = $arr[$i][3]; $res1 = $handle->get_nickname($num); echo '   ' . $res1[0][0] . '  ◀卍▶  第' . $arr[$i][0] . '楼


'; echo '     ' . @$arr[$i][1] . '' . $space . '删除'; echo '
'; } //对上下爷与首页,尾页进行操作 $key = "  批量管理
" . "                    第" . $page . "页/共" . $pages . "页   "; if ($page != 1) { //当前页面不是首页的时候显示首页与上一页的超链接 $key.="首页   "; $key.="上一页   "; } else { //当前页面是首页的时候,不显示首页与上一页的超链接 $key.="首页   "; $key.="上一页   "; } //对当前数字页码显示效果的处理 //对当前数字页码显示效果的处理 $num = min($count, $page_len); if ($page > $count || $page < 1) { //处理非法页号的情况 return; } $end = $page + floor($num / 2) <= $count ? $page + floor($num / 2) : $count; //计算结束页码 $start = $end - $num + 1; //计算开始页码 if ($start < 1) { //处理开始页号小于1的情况 $end -= $start - 1; $start = 1; } for ($i = $start; $i <= $end; $i++) { //输出分页条,请自行添加链接样式 if ($i == $page) { $key.='' . $i . ''; } else { $url = $_SERVER['PHP_SELF']; $key.="" . "{$i}" . "  "; } } if ($page != $pages) { //当前页面不是最后一页的时候,显示下一页和尾页的超链接 //$_SERVER['PHP_SELF']是当前页面的路径 $key.="   下一页   "; $key.="尾页"; } else { //当前页面是最后一页的时候,则下一页和尾页的超链接没有作用 $key.="   下一页   "; $key.="尾页"; } return $key; } //关闭连接 function close_connect() { if (!empty($this->mysqli)) { $this->mysqli->close(); } } }
四.handle.class.php 封装对留言信息的操作类(增加,删除,显示等处理)代码如下:

execute_dql($sql);
        $sql_ser->close_connect();
    }

    //删除留言
    function delete($info) {
        $sql = "delete from m_liuyan  where l_id=$info";
        $sql_ser = new sql_server();
        $sql_ser->execute_dql($sql);
        $sql_ser->close_connect();
    }

    //显示留言
    function show() {
        $user = new sql_server();
        $sql = "select * from m_liuyan";
        $arr = $user->execute_dqls($sql);
        return $arr;
    }

    //显示印象
    function show_impression() {
        $user = new sql_server();
        $sql = "select * from m_impression";
        $arr = $user->execute_dqls($sql);
        for ($i = 0; $i <= count($arr) - 1; $i++) {
            echo '   ';
            echo $arr[$i][1];
            echo "";
        }
    }

    //获取留言人的昵称函数封装
    function get_nickname($num) {
        $user = new sql_server();
        $sql = "select u_nickname from m_user where u_id=$num";
        $arr = $user->execute_dqls($sql);
        return $arr;
    }

}
五.数据的设计:

创建一个message数据库,建立三个数据表m_impression,m_liuyan,m_user。

1.m_impression 好友印象表

DROP TABLE IF EXISTS `m_impression`;
CREATE TABLE `m_impression` (
  `m_id` int(11) NOT NULL,
  `m_content` varchar(126) NOT NULL,
  PRIMARY KEY (`m_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.m_liuyan      留言表

DROP TABLE IF EXISTS `m_liuyan`;
CREATE TABLE `m_liuyan` (
  `l_id` int(11) NOT NULL AUTO_INCREMENT,
  `l_content` varchar(256) NOT NULL,
  `l_time` datetime NOT NULL,
  `l_user` int(11) DEFAULT NULL,
  PRIMARY KEY (`l_id`),
  KEY `l_user` (`l_user`),
  CONSTRAINT `m_liuyan_ibfk_1` FOREIGN KEY (`l_user`) REFERENCES `m_user` (`u_id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;

3.m_user         留言好友表

DROP TABLE IF EXISTS `m_user`;
CREATE TABLE `m_user` (
  `u_id` int(11) NOT NULL,
  `u_name` varchar(20) NOT NULL,
  `u_nickname` varchar(50) NOT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
六.调试成功后的实体图

php+mysql留言板(模仿qq空间留言板)_第1张图片





你可能感兴趣的:(php,javascript,mysql,php)