寒光博客

[PHP] Archive 期末项目 留言板 设计 mysql+php7
Archive GitHub: https://github.com/Dxoca/Archive/ 测试地...
扫描右侧二维码阅读全文
14
2020/05

[PHP] Archive 期末项目 留言板 设计 mysql+php7

Archive

思维导图

GitHub:
https://github.com/Dxoca/Archive/
测试地址:

http://achive.dxoca.cn

1K行基本代码+2K CSS 20天慢慢吞吞写完

MySQL判断表是否存在,并创建

有很多种方法:
直接用sql语句:

CREATE TABLE IF NOT EXISTS `TableName` ()

PHP封装了一个function:

/**
 * 判断数据表是否存在
 * @param $mysqli Mysqli对象
 * @param $table 要判断的表
 * @return bool
 */
function checkTable($mysqli, $table)
{
    $checkTable = $mysqli->query("show tables like '$table'")->fetch_row();
    if (isset($checkTable)) {
       return true;
    } else {
        return false;
    }
}

MySQL数据表中有自增长主键时如何插入数据

MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候;
如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;
也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;
具体:

1.创建数据库

create table if not exists userInfo (
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL,
password varchar(50) NOT NULL);

2.插入数据记录

insert into userInfo values(1,'aaa','1212');

当数据表中有自增长主键时,当用SQL插入语句中插入语句带有ID列值记录的时候;
如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;
也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填;
这种情况在进行插入的时候,两种解决方法:
1可以把id的值设置为null或者0,这样子mysql都会自己做处理
2手动指定需要插入的列,不插入这一个字段的数据!

方法1:

insert into userInfo values(null,'ddf','8979');
insert into userInfo values(0,'ddf','8979');

方法2:

insert into userInfo(name,password) values('ddf','8979');

mysql -- 清空表中数据

删除表信息的方式有两种 :

truncate table table_name;
delete * from table_name;

注 : truncate操作中的table可以省略,delete操作中的*可以省略

truncate、delete 清空表数据的区别 :
1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
2> truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete高的原因
3> truncate 不激活trigger (触发器),但是会重置Identity (标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的 ID数。而 delete 删除以后,identity 依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件

mysql 按主键顺序 逆序查找

如果是顺序就是asc

$content_sql = "select * from content  ORDER BY `Id` DESC";//查出表中所有数据 按id逆序

页面跳转的方式

header('refresh:0.5; url=admin.php');
<script>javascript:history.back(1);</script>
<script>url='admin.php';window.location.href=url;</script>

php获取用户端

/**
 * @return array|false|string
 * 获取登录ip
 */
function getIP()
{
    global $ip;
    if (getenv("HTTP_CLIENT_IP"))
        $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("HTTP_X_FORWARDED_FOR"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("REMOTE_ADDR"))
        $ip = getenv("REMOTE_ADDR");
    else
        $ip = "UnKnow";
    return $ip;
}

php直接取一言内容

这里是直接取网页源码,这个api直接返回纯文本。

$hitokoto = file_get_contents("https://v1.hitokoto.cn/?encode=text&charset=utf-8");

php 时间线

取出数据库的datetime 转换为unix时间戳
然后把 年 月 划分出来,
创建颜色数组 每个月份要不同的颜色
其他自己看算法就明白了,前端代码自己扒

 <div class="wrapper">
            <ul class="timeline">
                <?php
                //执行SQL 查询语句,并将结果集以表格的形式输出
                $content_sql = "select * from content  ORDER BY `Id` DESC";//查出表中所有数据 按id逆序!!
                $result = $mysqli->query($content_sql);

                $color = array("light", "info", "dark", "success", "black", "warning", "primary", "danger");
                $year = 0;
                $mon = 0;
                $i = 0;
                $j = 0;
                $output = '';
                $x = 0;
                $num = 0;
                while ($row = $result->fetch_row()) {
                    $timestamp = strtotime($row[2]);
                    //日期转换为UNIX时间戳用函数:strtotime() 进行处理
                    $year_tmp = date('Y', $timestamp);
                    $mon_tmp = date('m', $timestamp);
                    $y = $year;
                    $m = $mon;
                    if ($year > $year_tmp || $mon > $mon_tmp) {
                        $output .= '';
                    }
                    if ($year != $year_tmp || $mon != $mon_tmp) {
                        if ($x != 0) {
                            $output .= '</div>';//.tl-body
                        }
                        $year = $year_tmp;
                        $mon = $mon_tmp;
                        $x++;
                        if ($x >= 8) $x = 1;
                        $colorSec = $color[$x];
                        $output .= '<li class="tl-header">
                        <h2 class="btn btn-sm btn-' . $colorSec . ' btn-rounded m-t-none">' . date('Y年m月', $timestamp) . '</h2>
                        </li>
                        <div class="tl-body" >';//输出月份
                    }
                    $output .= '<li class="tl-item">
                                    <div class="tl-wrap b-' . $colorSec . '">
                                        <span class="tl-date">' . date('d日', $timestamp) . '</span>
                                        <h3 class="tl-content panel padder h5 l-h bg-' . $colorSec . '">
                                            <span class="arrow arrow-' . $colorSec . ' left pull-up" aria-hidden="true"></span>
                                            <a href="#" class="text-lt" title="有 '.$row[4].' 人喜欢">' . $row[1] ." — 「".$row[3]."」 ".'</a>
                                        </h3>
                                    </div>
                                </li>';
                    //输出文章
                }
                echo $output;
                ?>
                <li class="tl-header">
                    <div class="btn btn-sm btn-default btn-rounded">开始</div>
                </li>
            </ul>
        </div>
本文作者:Author:     文章标题:[PHP] Archive 期末项目 留言板 设计 mysql+php7
本文地址:https://dxoca.cn/StudyNotes/349.html       百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
Last modification:June 4th, 2020 at 11:13 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment

2 comments

  1. 8872314

    我是来看日记的 写的是真不错

    1. 寒光博客
      @8872314

      谢谢鼓励鸭 太开心了~|´・ω・)ノ