美文网首页get√IT相关码农的世界
微型博客系统的开发(php+mysql)技术细节

微型博客系统的开发(php+mysql)技术细节

作者: 我爱一碗香 | 来源:发表于2016-04-07 10:48 被阅读1068次

    在学习php的时候,成功开发一个简单的,如留言板之类的系统,常常作为php初级入门的标志,鉴于此,作为一个php初级菜鸟,同样开发了一个微型博客系统,下面将各项技术细节分享给大家,以供学习交流。

    一、系统开发思路

    微型博客系统的开发,不外乎php配合mysql来实现增删改查的功能,在正式分解技术细节前,先来看一下,开发系统前的思维导图:



    在本地搭建Apache、php运行环境、mysql数据库,数据库为"weibo",数据表为"news"。

    二、系统开发各项目介绍

    通过上图,我们发现,该系统的开发主要实现以下几个模块:首页列表页index.php,添加博文页add.php,删除博文页del.php,修改博文页edit.php,博文内容页view.php,共五个模块(页面),下面来做每个页面的技术细节分解。

    1.公共模块(页面)conn.php

    以上五个页面的开发,都需要进行对mysql数据库的连接操作,因此,这段代码我们可以直接写进一个公共页面conn.php,以供调用,代码如下:

    <?php
    @mysql_connect("localhost:3306","数据库用户名","密码")or die("mysql连接失败");
    @mysql_select_db("weibo")or die("db连接失败");
    /*@mysql_set_charset("gbk");*/
    mysql_query("set names 'gbk'");
    ?>
    

    注解:

    • 上边用到了mysql及具体数据库的连接,分别用到了mysql_connect()、mysql_select_db()这两个函数,分别用于连接mysql、数据库weibo。
    • mysql_set_charset()用于指定数据库编码,mysql_query是数据库sql语句执行函数,可直接在括号内写sql语句。
    • 值得注意的是"@"符号,它用于屏蔽mysql报错时的提示,避免用户体验不友好及安全性方面的考虑;
    • die(),该函数用于数据库连接失败时给与错误提示。

    2.添加博文页add.php

    向mysql数据库添加记录的功能页,插入sql语句是该页面的主体语句,具体代码如下:

    <?php
    include("conn.php");
    if(!empty($_POST['sub'])){
    $title=$_POST['title'];
    $con=$_POST['con'];
    $sql="insert into `news` (`id`,`title`,`dates`,`contents`,`hits`) values (null,'$title',now(),'$con','0')";
    mysql_query($sql);
    echo "<script>alert('添加成功');location.href='index.php';</script>"
    }
    ?>
    
    <div class="con">
    <form action="add.php" method="post">
    标题 <input type="text" name="title"><br/>
    内容 <textarea rows="5" cols="50" name="con"></textarea><br/>
    <input type="submit" name="sub" value="发表">
    </form>
    </div>
    

    注解:

    • inclucde("conn.php"),调用指定文件;
    • empty(),判断值是否为空;
    • $_POST[],获取表单post提交方式的值;
    • insert into `表名` (`字段1`,`字段2`,`字段3`,`字段4`,...) values ('值1','值2','值3','值4',...),sql插入语句;
    • location.href="",js页面跳转

    3.首页index.php
    首页为博文列表页,主要实现从mysql数据库提取数据的功能,查询sql语句是该页面的主题代码,此外,还有搜索功能的实现,具体代码如下:

    //导航部分
    <div class="nav">  
    <button><a href="add.php">发博文</a></button>  
    <form action="" method="get">  
    <input type="text" name="keys" />  
    <input type="submit" name="subs" value="搜索"/>  
    </form>  
    </div>
    
    //php代码主体
    <?php
    include("conn.php");
    if(!empty($_GET['keys'])){
      $w=" `title` like '%".$_GET['keys']."%'";
    }else{$w=1;}
    $sql="select * from `news` where $w order by id desc limit 10";
    $query=mysql_query($sql);
    while(mysql_fetch_array($query)){      
    ?>
    
    //页面html主体
    <div class="main">
    <h1>
    <a href="view.php?id=<?php $rs['id'] ?>"><?php echo $rs['title'] ?></a>
    </h1>
    <p><?php echo $rs['contents'] ?></p>
    <span><?php echo $rs['dates'] ?></span>
    <p class="oper">
    <a href="edit.php?id=<?php echo $rs['id'] ?>">编辑</a>
    <a href="del.php?del=<?php echo $rs['id'] ?>">删除</a>
    </p>
    </div>
    <?php 
    }          // 循环while下括号
    ?>
    

    注解:

    • select * from `表名` [where] [order] [limit],sql查询语句;
    • $_GET[],表单get提交方式,不同于post,适用于查询,运行效率较高,但安全性较差;
    • mysql_fetch_array(),将数据库资源类型转换为数组。

    4.删除博文页del.php
    删除博文页核心代码为,删除sql语句,PHP代码如下:

    <?php
    include("conn.php");
    if(!empty($_GET['del'])){
    $d=$_GET['del'];
    $sql="delete from `news` where `id`='$d'";
    mysql_query($sql);
    echo "<script>alert('删除成功');location.href='index.php';</script>";
    }
    ?>
    

    注解:

    • delete from `表名` [where] ...,删除sql语句;

    5.修改博文页面edit.php
    修改博文页面核心代码为,修改sql语句,代码如下:

    <?php
    include("conn.php");
    
    //get从index.php来的id参数
    if(!empty($_GET['id'])){
    $id=$_GET['id'];
    $sql="select * from `news` where `id`='$id'";
    $query=mysql_query($sql);
    $rs=mysql_fetch_array($query);
    }
    
    //POST从本页面来的隐藏id
    if(!empty($_POST['hid'])){
    $title=$_POST['title'];
    $con=$_POST['contents'];
    $hid=$_POST['hid'];
    $sql="update `news` set `title`='$title',`contents`='$con' where `id`='$hid' limit 1";
    mysql_query($sql);
    echo "<script>alert('更新成功');location.href='index.php';</script>"
    }
    ?>
    
    <div class="con">
    <form action="edit.php" method="post">
    <input type="hidden" name="hid" value="<?php echo $rs['id'] ?>">
    标题<input type="text" name="title" value="<?php echo $rs['title'] ?>"><br/>
    内容<textarea rows="5" cols="50" name="con"><?php echo $rs['contents'] ?></textarea><br/>
    <input type="submit" name="sub" value="发表">
    </form>
    </div>
    

    注解:

    • 更新指定id的数据,需要获取对应指定id,因此需要设置隐藏id以供调取

    6.博文内容页view.php
    博文内容页核心代码为sql查询语句,另外还有点击量功能的实现。具体代码如下:

    //导航部分
    <div class="nav">
    <button><a href="index.php">回到主页</a></button>
    </div>
    
    //php代码主体
    <?php
    include("conn.php");
    
    if(!empty($_GET['id'])){
    $sql="select * from `news` where `id`='".$_GET['id']."'";
    $query=mysql_query($sql);
    $rs=mysql_fetch_array($query);
    $sqlup="update `news` set hits=hits+1 where `id`='".$_GET['id']."'";
    mysql_query($sqlup);
    }
    ?>
    
    //页面html主体
    <div class="main">
    <h1><?php echo $rs['title'] ?></h1>
    <span><?php echo $rs['dates'] ?></span>
    <span>点击量:<?php echo $rs['hits'] ?></span>
    <hr>
    <p>
    <?php echo $rs['contents'] ?>
    </p>
    </div>```
    注解:
    - 点击量的实现,可在phpmyadmin设置hits字段,利用update语句,做hits=hits+1,在正文中直接调用提取即可。
    
    以上为整个微型博客系统基本功能的实现,作为php的菜鸟,一定要稳扎稳打,巩固好基础,达到熟练编写增删改查,及php基本语法,能顺利的开发出相关的简单系统,平日多练,水平才会不断提高,逐步进阶。

    相关文章

      网友评论

      本文标题:微型博客系统的开发(php+mysql)技术细节

      本文链接:https://www.haomeiwen.com/subject/hbfmlttx.html