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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
php入门教程 精简版
Dec 13 PHP
PHP对字符串的递增运算分析
Aug 08 PHP
php GeoIP的使用教程
Mar 09 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php过滤敏感词的示例
Mar 31 PHP
php设计模式之委托模式
Feb 13 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
PHP钩子实现方法解析
2019/05/21 PHP
非常好的js代码
2006/06/27 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
Python新手学习装饰器
2020/06/04 Python
Python调用C/C++的方法解析
2020/08/05 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
介绍一下游标
2012/01/10 面试题
教育专业自荐书范文
2013/12/17 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
关于学习的演讲稿
2014/05/10 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
庆七一活动总结
2014/08/27 职场文书
旅游活动总结
2014/08/27 职场文书
追悼会家属答谢词
2015/09/29 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript