PHP实现简易blog的制作


Posted in PHP onOctober 24, 2016

最近,有时间看了点PHP的代码。参考PHP100教程做了简单的blog,这里面简单的记录一下。

首先是集成环境,这里选用的WAMP:http://www.wampserver.com/en/

首先通过,phpMyAdmin创建一张blog表。

PHP实现简易blog的制作

纯界面操作,过程比较简单,需要注意的是id是主键,并且设置auto_increnent 选项,表示该字段为空时自增。其它字段就比较随便了,注意类型和长度即可。

创建数据连接    

在./wamp/www/blog目录下创建conn.php文件。

<?php

@mysql_connect("127.0.0.1:3306","root","") or die("mysql数据库连接失败");
@mysql_select_db("test")or die("db连接失败");
mysql_query("set names 'gbk'");

?>

mysql默认用户名为root,密码为空,这里创建的blog在test库中,所以需要连接test库。

添加blog                         

在./wamp/www/blog/目录下创建add.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
include("conn.php"); //引入连接数据库

if (!empty($_POST['sub'])) {
  $title = $_POST['title']; //获取title表单内容
  $con = $_POST['con'];   //获取contents表单内容
  $sql= "insert into blog values(null,'0','$title',now(),'$con')";
  mysql_query($sql);
  echo "insert success!";

}

?>

<form action="add.php" method="post">
  title  :<br>
  <input type="text" name="title"><br><br>
  contents:<br>
  <textarea rows="5" cols="50" name="con"></textarea><br><br>
  <input type="submit" name="sub" value="submit">
  
</form>

这段代码分两部分,上部分是PHP代码,include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。

然后,判断表单中name='sub'的内容不为空的情况下,将获取表单的内容,然后执行$sql 语句,null 表示id为空(自增),now()表示取当前日起,$title和$con取表单中用户提交的内容。最后eche 插入成功的提示。

下半部分就是一段简单的HTML代码了,用于实现一个可以blog表单提交的功能。

创建blog的首页                         

在./wamp/www/blog/目录下创建index.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<br><br>
<form action="" method="get" style='align:"right"'>
  <input type="text" name="keys" >
  <input type="submit" name="subs" >
</form>
<hr>

<?php
include("conn.php"); //引入连接数据库
  
  if (!empty($_GET['keys'])) {
    $key = $_GET['keys'];
    $w = " title like '%$key%'";

  }else{
    $w=1;
  }

  $sql ="select * from blog where $w order by id desc limit 5";
  $query = mysql_query($sql);
  
  while ($rs = mysql_fetch_array($query)) {


?>
<h2>title: <a href="view.php?id=<?php echo $rs['id']; ?>"><?php echo $rs['title']; ?></a>
  | <a href="edit.php?id=<?php echo $rs['id']; ?>">edit</a> 
  | <a href="del.php?id=<?php echo $rs['id']; ?>">delete</a> |
</h2>
<li>date: <?php echo $rs['data']; ?></li>
<!--截取内容展示长度-->
<p>contents:<?php echo iconv_substr($rs['contents'],0,30,"gbk"); ?>...</p> 
<hr>

<?php

};

?>

该页面包含有的功能还是比较多的。

首先是一个搜索表单,通过if判断搜索表单的内容是否为空,如果不为空,通过输入关键字匹配文章的标题并显示结果;如果为空查询所有blog内容,并循环显示每一篇文章的标题、日期、正文。点击标题会链接到该篇blog的详细页面。每一篇文章提供“编辑”和“删除”功能。

mysql_query()用于执行sql语句。mysql_fetch_arry()将返回的数据生成数组,这样就可以像操作数组一样,操作数据库中的每一条数据了。

然后是正文的显示,通过 iconv_substr() 函数提取正文前30个字符。

查看blog                                                                                                            

在./wamp/www/blog/目录下创建view.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>

<?php
include("conn.php"); //引入连接数据库

  if (!empty($_GET['id'])) {
    $id = $_GET['id'];
    $sql ="select * from blog where id='$id' ";  
    $query = mysql_query($sql);
    $rs = mysql_fetch_array($query);
    
    $sqlup = "update blog set hits=hits+1 where id='$id'";
    mysql_query($sqlup);
  }



?>
<h2>title: <?php echo $rs['title']; ?> </h1>
<h3>date: <?php echo $rs['data']; ?> 
click number: <?php echo $rs['hits']; ?></h3>
<hr>
<p>contents:<?php echo $rs['contents']; ?></p>

blog的正文实现比较简单,通过get请求获取blog的id,然后通过sql语句将该id对应的标题、日期和正文查询出来并显示。
并外一个小功能是显示了一个简单的计数器,每刷新页面,点击数加1。

编辑blog                                                                                                        

在./wamp/www/blog/目录下创建edit.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
include("conn.php"); //引入连接数据库

//获取数据库表数据
if (!empty($_GET['id'])) {
  $edit = $_GET['id'];
  $sql = "select * from blog where id='$edit'";
  $query = mysql_query($sql);
  $rs = mysql_fetch_array($query);
}

//更新数据库表数据
if (!empty($_POST['sub'])) {
  $title = $_POST['title']; //获取title表单内容
  $con = $_POST['con'];   //获取contents表单内容
  $hid = $_POST['hid']; 
  $sql= "update blog set title='$title', contents='$con' where id='$hid' ";
  mysql_query($sql);
  echo "<script>alert('update success.');location.href='index.php'</script>";

}

?>

<form action="edit.php" method="post">
  <input type="hidden" name="hid" value="<?php echo $rs['id'];?>">
  title  :<br>
  <input type="text" name="title" value="<?php echo $rs['title'];?>">
  <br><br>
  contents:<br>
  <textarea rows="5" cols="50" name="con" ><?php echo $rs['contents'];?></textarea><br><br>
  <input type="submit" name="sub" value="submit">
  
</form>

编辑blog的功能相对复杂一些。分两部操作,第一步先将blog的标题和正文查询出来,并显示到输入框。第二步将编辑好的内容再更新到数据库中。

删除blog   

在./wamp/www/blog/目录下创建del.php文件。

<a href="index.php"><B>index</B></a>
<a href="add.php"><B>add blog</B></a>
<hr>


<?php
  
  include("conn.php"); //引入连接数据库

  if (!empty($_GET['id'])) {
    $del = $_GET['id']; //删除blog
    $sql= "delete from blog where id='$del' ";
    mysql_query($sql);
    echo "delete success!";

  }

?>

最后是实现blog的删除功能,通过id将该条blog的查询出来并显示。

因为所有页面没有使用前端样式有美化,很丑就不贴图了。功能还算完美。在此记录,算做PHP学习的整理。

=======================================================

另外,虽然每个语言都有优缺点,这里还是忍不住要吐槽一下PHP的两个不好之处。

1、符号不好写, “$” 、“ ->” 、 “=>”。这些符号虽然并没有增加代码语法的理解难度。但敲起来具恶心。每次在打“$”符号的时候,都要眼看键盘按着shift键找4在哪儿。

2、php与html的混编在我看来也不是太优雅。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP脚本数据库功能详解(上)
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
PHP _construct()函数讲解
Feb 03 PHP
PHP addslashes()函数讲解
Feb 03 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
php基于websocket搭建简易聊天室实践
Oct 24 #PHP
详解php中 === 的使用
Oct 24 #PHP
使用PHP免费发送定时短信的实例
Oct 24 #PHP
浅谈php和js中json的编码和解码
Oct 24 #PHP
php注册和登录界面的实现案例(推荐)
Oct 24 #PHP
php 使用html5实现多文件上传实例
Oct 24 #PHP
php 多文件上传的实现实例
Oct 23 #PHP
You might like
php include加载文件两种方式效率比较
2010/08/08 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php获取域名的google收录示例
2014/03/24 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python实现BackPropagation算法
2017/12/14 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
详解Python3 pandas.merge用法
2019/09/05 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
opencv 阈值分割的具体使用
2020/07/08 Python
python如何停止递归
2020/09/09 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
工伤事故赔偿协议书
2014/10/27 职场文书
围城读书笔记
2015/06/26 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript