资讯专栏INFORMATION COLUMN

仿微博发布动态,php入门学习笔记

Lsnsh / 616人阅读

摘要:一直学的都是前端方面的东西,最近对有点感兴趣,研究了一下以前项目中后台的文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。

一直学的都是前端方面的东西,最近对php有点感兴趣,研究了一下以前项目中后台的php文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。欢迎php的大佬指导批评^_^
代码部分
       // 创建消息节点
        function createEle(id, txt, time, acc, ref) {
            var content = "
"+ "

"+ txt +"

"+ "
"+ ""+ time +""+ ""+ ""+ acc +""+ ""+ ref +""+ "删除"+ ""+ "
"+ "
"; $(".create").prepend(content); } // 初始加载 init(); function init() { $.ajax({ type: "POST", url: "weibo.php", data: "act=update", success: function (res) { var data = JSON.parse(res); $(data).each(function (index, value) { createEle(data[index].id, data[index].content, data[index].uptime, data[index].acc, data[index].ref); }) } }) } // 获取时间 function time() { var data = new Date(); function change(val) { if (val < 10) { return "0" + val; } else { return val; } } var arr = [data.getMonth() + 1 + "月", data.getDay() + "日 ", data.getHours() + ":", change(data.getMinutes()) + ":", change(data.getSeconds())]; return arr.join(""); } // 发送 创建 $("#send").click(function () { if ($("#text").val()) { var txt = $("#text").val(); $.ajax({ type: "POST", url: "weibo.php", data: "act=add&content="+txt+"&time="+time(), success: function(res){ var mul = 0; var data = JSON.parse(res); createEle(data[data.length - 1].id, txt, time(), 0, 0); } }); } else { alert("输入不能为空"); } }); // 删除 $("body").on("click", ".inferDel", function () { $(this).parents(".infer").remove(); $.ajax({ type: "POST", url: "weibo.php", data: "act=del&id="+$(this).parents(".infer").attr("data-set"), success: function(res){ } }); }) // 点赞 $("body").on("click", ".up", function () { $(this).html(parseInt($(this).html()) + 1); $.ajax({ type: "POST", url: "weibo.php", data: "act=acc&id="+$(this).parents(".infer").attr("data-set")+"&acc="+$(this).html(), success: function(res){ } }); }) // 踩点 $("body").on("click", ".down", function () { $(this).html(parseInt($(this).html()) + 1); $.ajax({ type: "POST", url: "weibo.php", data: "act=ref&id="+$(this).parents(".infer").attr("data-set")+"&ref="+$(this).html(), success: function(res){ } }); })
php
connect_error) {
        die("数据库连接失败".$con->connect_error);
    } else {
        // echo "数据库连接成功";
    }
     
    // 插入数据
    if ($_POST["act"]=="add") {
        $txt = $_POST["content"];
        $time = $_POST["time"];
        // echo $time;
        $sql = "INSERT INTO weibo (content, uptime) VALUES ("$txt", "$time")";
        $con->query($sql);
        $sql2 = "SELECT * FROM weibo";
        $result = $con->query($sql2);
        if ($result) {
            $test = array();
            while($row = $result->fetch_assoc()) {
                $info = array("id" => $row["id"], "content" => $row["content"], "uptime" => $row["uptime"], "acc" => $row["acc"], "ref" => $row["ref"]);
                array_push($test, $info);
            }
            echo json_encode($test);
        } else {
            echo "Error";
        }
        // if ($con->query($sql)) {
        //     echo mysqli_insert_id($con);
        // } else {
        //     echo "Error";
        // }
    }
    // 删除数据
    if ($_POST["act"]=="del") {
        $id = $_POST["id"];
        $sql = "DELETE FROM weibo WHERE id = "$id"";
        $con->query($sql);
    }
    // 点赞数据
    if ($_POST["act"]=="acc") {
        $id = $_POST["id"];
        $acc = $_POST["acc"];
        $sql = "UPDATE weibo SET acc = "$acc"  WHERE id = "$id"";
        $con->query($sql);
    }
    // 踩点数据
    if ($_POST["act"]=="ref") {
        $id = $_POST["id"];
        $ref = $_POST["ref"];
        $sql = "UPDATE weibo SET ref = "$ref"  WHERE id = "$id"";
        $con->query($sql);
    }
    // 加载数据库
    if ($_POST["act"]=="update") {
        $sql = "SELECT * FROM weibo";
        $result = $con->query($sql);
        if ($result) {
            $test = array();
            while($row = $result->fetch_assoc()) {
                $info = array("id" => $row["id"], "content" => $row["content"], "uptime" => $row["uptime"], "acc" => $row["acc"], "ref" => $row["ref"]);
                array_push($test, $info);
            }
            echo json_encode($test);
        } else {
            echo "Error";
        }
    }
    $con->close();
?>

写完之后才知道$con->query($sql)是老版本的写法,现在的语法是mysqli_query($conn, $sql)。
最后加载数据库,对把数据处理成数组对象,转成json格式传递到前端,这里还是稍微纠结了一会儿,感觉写的可读性有点差……

2018-12-15 优化更新
// 加载数据库
    if ($_POST["act"]=="update") {
        $sql = "SELECT * FROM weibo";
        $result = mysqli_query($con, $sql);
        // if ($result) {
        $info = mysqli_fetch_all($result, MYSQLI_ASSOC);
        echo json_encode($info, JSON_UNESCAPED_UNICODE);
            // $test = array();
            // while($row = $result->fetch_assoc()) {
            //     array_push($test, $row);
         //    }
            // echo json_encode($test, JSON_UNESCAPED_UNICODE);
            // echo json_encode($test);
        // } else {
        //     echo "Error";
        // }
    }

刚开始写的时候不知道用什么方法返回结果集,用了fetch_assoc()方法获取一行关联数组,再array_push()进一个空数组里。发现有mysqli_fetch_all()方法之后感觉自己愚蠢至极……直接用mysqli_fetch_all()处理结果集就行了,要加上MYSQLI_ASSOC使返回的是关联数组,方便AJAX遍历,否则返回的是没有索引的数组格式。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29810.html

相关文章

  • 仿微博发布动态php入门学习笔记

    摘要:一直学的都是前端方面的东西,最近对有点感兴趣,研究了一下以前项目中后台的文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。 一直学的都是前端方面的东西,最近对php有点感兴趣,研究了一下以前项目中后台的php文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。欢迎php的大佬指导批评^_^ 代码部分 // ...

    Kaede 评论0 收藏0
  • 仿微博发布动态php入门学习笔记

    摘要:一直学的都是前端方面的东西,最近对有点感兴趣,研究了一下以前项目中后台的文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。 一直学的都是前端方面的东西,最近对php有点感兴趣,研究了一下以前项目中后台的php文件,也看了点视频,做了一个放微博发布动态的小功能,算是刚入门吧。记录一下学习过程。欢迎php的大佬指导批评^_^ 代码部分 // ...

    yuanzhanghu 评论0 收藏0

发表评论

0条评论

Lsnsh

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<